well I think the idea would be to do things gradually,
1. so pick not out of crib til 5:30 and you can go in reassure and leave. if he is happy and playing, great, if he is crying then go back in etc. Does he have a lovey? that aways helped over here. and then you can move on to 5:45 etc. do you think he is waking because of hunger? is he bf well before bed, eating solids?
and then delay the first bf in much the same way, just delay by 10 min every few day
he probably will get OT by 9am, definately don't offer a nap at 7am, just move the am nap forward to 8:15, 8:30..... etc. move it forward every few days,