So sorry for you! Been there several times with our little guy - he's now almost 21 months. He was getting up around 3AM, ready for a full day - for about 2 weeks in a row at one point - exhausting! The key is major consistency. If he's still taking 2 naps, try & put him down the same time each day & for the last nap, no later than 2:30 PM. If he's still asleep at 4PM, wake him up. Then - EARLIER BEDTIME.
Seriously - it sounds insane, but you've already tried putting him to bed later & it didn't work. The latest should be 7:00. Get him in the bath by 6:30 - read books, do the nighttime routine, lights out at 7PM. Even if he fights it, try it for a solid week before trying something else. Heck - if he insists on being an early riser, then wouldn't an extra hour or 2 be better for you in the evenings?!?
If he continues to wake at 4AM, don't talk, don't turn on any lights, act like it's the middle of the night & you're just calming him back to sleep. Give him a rub on the back, lay him back down if he's up, tell him night-night & shut the door.
I feel for you - thankfully these times a phase - the other suggestions are great too, but typically the early riser may just need an earlier bedtime or a cup of water & then lights out again. 6:00 is an average wake-up time so be sure to not set unrealistic expectations like an 8AM wake-up time or something. Good luck!!!