Isn't RIFF WAV just a little endian IFF? Less an abortion and more of a miscarriage? 
No, really, it's far worse than that. Trivial examples are just that - an IFF hunk format with little endian data, but it can get a lot worse.
I once saw some example windows source for dealing with RIFF with all the really nasty hunks they'd kludged in for different things over the years and it was amongst the worst spaghetti code I have ever seen. Never in my life have I seen so many goto statements in C code, and I've seen a lot of generated C.
I still have the odd nightmare about it now.