Animated buttons, external swfs, frame labels, better code - please advise!

I have three animated buttonMc’s with code like this on them…
[color=blue]
on (rollOver) {gotoAndPlay(2);
}
on (rollOut) {gotoAndPlay(8);
}
on (release) {gotoAndStop(16);
_root.mtClip.play();
_root.nextMc=“scene1.swf”;
if (_root.butt2MC._currentFrame == “16”) {
_root.butt2MC.gotoAndPlay(8);
}
if (_root.butt3MC._currentFrame == “16”) {
_root.butt3MC.gotoAndPlay(8);
}
_root.statusBox.text = “button 1 text”
}[/color]

First of all the animation works perfectly but the external swf’s can’t keep up with the user if they click too fast - how can I fix this?

Also, these buttonMC’s are on the stage but the code for them is inside each MC. The script tells each button to go to different frames to make each button animate to its appropriate state.

[color=#22229c]look at example —> [/color]

How can I rewrite the code to …
A) not reside in each button but on the main timeline
B) reference frame labels instead of frame numbers
c) not lose any functionality doing this…
d) at least load the swf’s properly play existing outro and load new intro…

Currently If I want to add five more buttons the code must be duplicated for each buttonMC and this seems really inefficient. This is the only way I have been able to make everything work though. any insights appreciated…