Thanks for the responses guys! I'm making a hack of emerald.
So far I've made all gen 3 pokemon (except legendaries) available, made each trade-evolution pokemon evolve by level-up, and also changed a few stats and move sets around, like Flareon, for example. I've also made each TM available through purchasing either at the game corner, trainer tower, or a pokemart.
All of the legendaries not originally in emerald are going to be in extensions of places that you can only get to after the elite four. For instance, Mewtwo will be in a new room in the desert underpass. Also, I'm trying to develop a postgame plot where team Aqua and Magma team up to kidnap all of the legendaries, and it's up to you to defeat them and capture the legendaries.
Lastly, there will be a new town/route attached to littleroot town accessible only after the elite four. It will be a place where each section of it will have all high level pokemon of a specific EV. For example, there will be a cave with all Aggron/Steelix and what not.
I'll have a few more minor changes but that's mostly it for now. The thing I'm struggling with so far is how to make a trigger event- for example how to make trainers appear only after defeating the elite four or only after defeating a specific trainer etc.
Thanks again for the responses! I'd love to get some feedback/suggestions/help on this.