Mass M Decompiler
Presenting you the Mass M Decompiler with VB.NET source code...
This utility is able to create 2 sorts of output. UO-C is the output closest to the M script files. Real-C was invented to make analysis easier because the output has been made compatible with the C language so cross-referencing variables and function names works without problems.
How it works? Very easy, extract all files from the DAT file with Ultima Online uodemo.dat extractor 0.1b  and point the utility to the extracted scripts subdirectory. Then press the Mass Decompile button and when the decompilation is finished press the Dump All button, this will create a scripts.c directory.
If you need assistance with using the Mass M Decompiler please search or post your question at JoinUO : UO Demo Forum
Download Mass M Decompiler (Publish 3).
NOTE: This version uses the UO Demo SDK and also fixed a bug related with the decompilation of the targetloc event, this bug was reported by Garret of ruosi.org.
Download Mass M Decompiler (Publish 2).
NOTE: Publish 2 fixes the include statement to make it compatible with the actual script contents
Technical information about the M files can be found here.