I would like to know how it is possible to read IL from a managed library or executable, and parse the metadata in the file, similar to how Mono.Cecil works. The reason I am doing this is to port some .NET code to Android (and a few other platforms), without having to pay the outrageous fee for Mono. I am wondering if the IL code used in these files is documented somewhere. Mono's parser seems to be very messy. I'd like to read the actual specification, instead of a C# implementation of it.
There are plenty of IL decompilers and tools out there; it should be relatively easy to read whatever instructions or metadata you want, and do with them whatever you want.
But most of these .Net tools are themselves written in .Net. Which is fine, if you're willing to whatever you need on a Windows workstation (then copy the final output to your target device).
As far as finding a decompiler library or tool that actually RUNS on your Android target ... that's a bit more problematic :)
Anyway, have a look here: