I think you're doing the right thing by moving his bedtime back. Since he's sleeping more than 5 hours at night, it's good to get some more sleep time on the front end of the night, since this is mostly deep sleep.
Now, you can move his bedtime back slowly to 7 pm or 6:30 to see if he sleeps longer at night. His biological clock is getting him up at 6, and it will probably remain that way for quite a while. Chances are, this won't change, which is why early bedtimes usually work. OR, you can move it to 8 pm for awhile, since he's still getting 8-10 hours of sleep, which is actually more typical of a 3 month old. If you move his bedtime back, and he starts waking to start his day earlier, try moving it back up a little. 10-12 hours is your eventual goal for night sleep, and you'll want to keep that for several months to come.
Based on your sleep schedule, you get him up at 4 from his 2nd nap. He *could* do a 6 pm bedtime...but that's for you to decide. If you continue to give the third nap, he might be ready for bed between 7 and 7:30 at that age. Keep the feeding. What you could try is a df at 11-12 pm and see if that keeps him nourished until he gets up in the am, or just keep getting up at 3-4 for his feeding. Play with it and see what works.
Hope this helps! Let us know how it goes!
*HUGS*
Sonya =P