Have you tried going into the Clock app and setting an alarm then removing them alarm? This has helped me in the past. As far as I understand there is a special area of memory that is used for the alarm system. If this area becomes corrupt in some way you get reboots at 12AM every day. Cheers, John