I've rewrote part of the code so now both players are the same object with different animations. I've come up with a great way to have the same blocks of events for all the players too, so there's only a few lines of code for movement.
I had some trouble making the screen scroll though but after some crazy object picking it now works.
I still need to fix the digging animations for each player but so far everything is looking great. After I'm done with this I'll begin working on each screen. I'm still not sure if I should add the tilemaps manually in the same layout or if I should make them load when the player changes screen. The former is MUCH more work but if I did it right, I would be able to make a level editor of sorts. Still, I'm not sure it's worth it...
I've been thinking about how to handle more players in the game so instead of programming the game the "easy way" (by cloning the player object and copy/pasting the same events while changing the objects) I'm going to do it the right way - having the same player object with different animations depending on which player it is. This way I can have the same events for all players, and if I want to add more players later (maybe 4-player co-op) it won't limit me.
It shouldn't be too hard. I'll use a variable to store the player's controls and store the keycodes on a TokenAt.