That brings me to my next question. I'm trying to add new legendaries to the game, and a couple events allowing the player to acquire unique Pokemon. For example, I plan to make several new Regis, add some legendaries from older games and a few that are unable to be acquired. For this, I have to be able to create waiting legendaries. How would I go about doing this? Is there any way I can create a new overworld sprite without overwriting another one, and would it require the use of scripting?
Adding OWs is tricky business. I don't remember which game you were hacking, so I'll cover the Gen III Games.
Ruby has 217 total OWs, and a large amount of them are Pokemon Dolls, or placeholders for the rival. I don't hack Ruby, but Light Platinum has OW sprites for pretty much all legendary Pokemon, and plenty of people as well, which means you're probably fine editing the existing ones (I'll provide a useful link later)
Firered has 151 OWs, so it's understandable that you might want to add more. The link I'll provide at the end of this post specifically addresses Firered, and although it's for JPANs hack engine, the post still has everything important for adding and resizing OWs.
Emerald has 245 OWs. If you're wanting to add more to Emerald, don't evene bother...255 is the max amount you can have, in any case, so an extra 10 won't do you much good.
This tutorial has all the useful things about OW structures. It also has necessary offsets which should allow you to repoint. Remember, though, that you'll need to edit the INI files to edit them