Hi mrsflux - we've been having exactly the same with 12 month old DS.
The 5am wake ups were absolutely killing me so we've rejigged his napping schedule.
He was doing exactly the same as your DS - waking up at 5am and then catching up on sleep for an hour or so as early as 8.30 or 9am, then another long nap after lunch.
So I've pushed back his morning nap as much as I can to 10am (hell the first couple of days) and restricted it to half an hour. If he sleeps any longer than half an hour then it has a knock on effect on the timing of his next nap and then on bedtime. He goes down again at about 1/1.30pm but I'll only let him sleep for an hour and a half. This sees him through til bedtime (which we've pushed back to 7.30pm).
I've worked out that if he sleeps for more than 2 hours during the day he sleeps less well at night. But any less than 2 hours and he gets overtired and then will also sleep badly.
The first time we tried this he woke up at 6.30am!!! It was miraculous after all the 5am wakes. I was so happy I woke DH up at 6am to tell him DS was still aslepp - DH was not impressed.
Anyway, it seems to be working. Being so rigid goes against everything I've done so far, but I'm back at work as of Monday so needed to get him sleeping a bit better.
So far his total sleeptime has actually increased since we've been restricting his naps during the day. He was sleeping for about 12 hours in total, but now he's edging past 13 which is great.
I think in a couple of months he'll be able to stay awake until lunchtime and then will have one long nap after lunch but at the moment he needs the mini-nap in the morning to keep him going.
Obviously what works for one baby won't necessarily work for another - I was scared to try restricting naps/waking him up in case he got overtired but it does seem to be working for us so far.