I agree with ventilator on the SDKs, they seem too complicated to use. I tried to use one from C# and it just wasn't easy!

I decided to manually parse the WMB format, from the online specification although it would help if it was accurate, because I have found numerous errors.

for my editor, I'm using the .wmb to read in existing levels, but writing out .$$M files, which can be compiled by the map compiler, so i don't have to mess about with lightmaps etc.