Adding a repeat would make it shorter. You wouldn't need the Label or WAIT command. So...
BGMPLAY "T121L60[[AA<EEDC>BAGAB<CDE&E30]2EFDEFGAEDC>AB<CD30CDE30FEEDC>BA30<C120>B120A<D30CDEFGAEDC>BA&A30]"
In MML, if you type the letter L followed by a number that number becomes the default length of notes. So with this example, you could type L60 at the beginning and then omit writing 60 after any notes.
I deleted a lot of your code, but what I wrote should work like you expect. SPANIM is a command you should look into. In your original program, you were using both SPSET and WAIT for each iteration where SPANIM combines the two. I also included animation for walking the opposite direction.
This sounds cool! A couple questions though... 1) Are games allowed, or is it apps only? 2) Closings are random means that we don't know when the tournament will end?
I'm fine-tuning a battle system for an RPG I'm creating. I'm done with most of the stuff, and it's created in a way that will make adding new monsters and magic really easy!