Simple Green is also great for white walls.
On the engine, I use a commercial engine cleaner on a warm engine, leave on 5 to 10 minutes hose off. If you have access to a steam cleaner ..... it's the best for cleaning greasy crud--- use it sparingly around electrical and rubber parts. When it's mostly dry and as RS said use a compressor to blow out the hard ro reach areas you can rub a coating of ArmorAll or other rubber protectant on all the rubber parts like the water and vacuum hoses, weatherstripping and splash guards etc. Engines don't have chrome anymore so you don't have to worry about polishing that. ;D
It shoud be pretty easy to clean an engine if you don't let it take too long between cleanings.
Does anyone clay bar and wax their engine compartment?..............just kidding.