This is what I have:
01: FieldModule
02: BattleEvent (Takes the formation index as a parameter. If called "raw" it will be considered 0 which is a test battle)
03: WorldMap
04: NonEvent (Does nothing, might break game as this will never get unset)
05: MainMenuEvent
06: MidgarHighway
07: ChocoboEvent? (this is apparently correct)
08: SnowboardGame
09: untested (apparently Condor)
0A: SubmarineGame
0B: Snowboard2Event?
0C: CDChangeEvent
0D: multi_event (Wutai/huge materia/master materia, etc)
0E: SnowboardGame
0F: NonEvent
10: Event1Event?
11: unknown_1
12: NonEvent
13: unknown_2 (apparently END)
14: SomeMenuEvent (New Game/Continue menu at the beginning)
15: unknown_3
16: NewGameEvent
17: BattleSwirlEvent
18: NonEvent
19: EndingFMVEvent (Shortest game EVER :D )
1A: MainEvent? (throws game over if no game loaded previously)
1B: OpeningCredits_0
1C: OpeningCredits_1 (Run Credits then close)
I call these events. Each of them set an initializer function, main driver function, destructor function and up to two other functions I can't identify (monitors?). Most of the destructors unload things set by the initializers and set the next event index. The opening credits' destructors call 14 if the credits loaded correctly or 13 otherwise (this is why the game just dies if the files are not present).
A lot of them require some parameter to be set somewhere in memory and the memory either initializes as 0 or -1. Many of those don't like those parameters so they'll fail. They'll usually initiate code 13 which quits the game.