The days he gets a 45 min nap will wake at 430 am in the next morning... that's pretty indicative he's overtired and then is waking super early. By all means try to extend the nap when he does this (that is, waking before 1 hour of nap). You may use any of the methods describe in this forum like wake to sleep (you go in the room at the 30 min mark, rub his back and jiggle him a little to make him half-concious and then pat him to go back to sleep, that way, you start a new sleep cycle and break the habit of waking at the 45 min mark) or wi/wo, the minute he wakes if he's crying you go to him, lay him down, rub his back/forehead and tell him is time to sleep and walk out. Only walk in if he's crying for you after counting to 10. if he's happy and playing let him be, he'll settle himself and to your surprise, he might goback to sleep. Do this wi/wo until he settles or until the "desired" nap time is over. It might take a few days, but eventually he'll learn to sleep through his nap.
Along this, i would implement a 6 pm bedtime, even if he goes down until 7, he needs an earlier bedtime since he's waking from his nap super early. WIth an early bedtime you might prevent overtiredness and hence, an early waking next day.
HTH and keep us posted!