First, I would push his bedtime back until 8:30 (so start putting him down at 8 instead of 7:30). Give him a bed-time snack before he goes down, to keep his tummy fully overnight (something healthy but filling).
Also, there is absolutely no need for you to get up at 4:30 with a 2-year-old. Turn off your monitor and set your alarm for 5 (to start with, hopefully you'll be able to push it back). You don't have to jump just because he wakes up. He might just put himself back to sleep if you give him the opportunity. If not, he can still play in his crib until you come to get him. If he learns that waking up earlier doesn't get him any more mommy-time or play-time than sleeping in, he might be less eager to get up. He'll probably scream the first couple of times, but he should learn.
As for the naps, I'm really not sure what is going on. You might try the same thing I suggested above. Have two different set nap times (once in the morning and once in the afternoon), and if he wakes up before his naptime is over, he can play in his crib. When I worked in daycare, we expected kids his age to be able to lie on their cots and either read or play quietly during naptime if they woke up early, so I'm convinced he can handle it once he has adjusted to the change. I hope this helps! I would be exhausted if I was in your shoes! I hope you're able to fix the problem soon!