I just reverse engineered
Irrlicht, using
Altova UModel 2005. Because UModel currently only supports Java, I used the excellent Irrlicht Java bindings
jirr and
bindenlicht, and both worked without any problems. UModel parsed them within about half a minute. Quite impressive, if you think about the fact that you can change the classes completely in this tool and write the code back correctly, even if you made some changes to the source files in the meanwhile. For Irrlicht, UModel looks like this:

Best looking UML-tool I ever used, btw :) A good overview of all the Irrlicht interface classes shows
this UModel generated class diagram. If you think that Irrlicht consists of about 3 or 4 times more classes for the implementation, you get the idea soon that Irrlicht is not a trivial piece of software. :)