The file format is just pretty much as simple as I could make it, so since the game always loads all the resources and never loads or seeks them individually, I didn't add any extra info to help with that. You can actually get the editor to run on Linux if you want, but it has a few dependencies. You will need X and mono-complete, then you can just run the .exe file through mono. It's made in WinForms though so it doesn't look great, but everything should work fine.
As far as the unpacker goes.. well, we do have an unpacker, but I'm just not sure if releasing it is a good idea.. like you can see the .hwm format is trivially simple and contains no protection, but at the same time people who make maps might want to keep their content private, so I just don't know.
If you're curious or want to finish your unpacker the .xml.bin files are pretty much the same format as the .xml except they are packed as binaries for slightly faster loading and smaller filesizes. Basically we have an internal structure where we map simple data types in a hierarchy and then we can serialize that hierarchy in a few different ways (xml and binary), this is what we use for save files, level files, some of the more complex network commands, stuff like that. So when packing the .hwm files we open all the levels and reserialize them as binaries, here is the source code for the class:
http://hammerwatch.com/SValue.txt So if you're using C# you can just use that class and do a LoadStream() then SaveXML() to get the .xml files back (that also works for the .hws save files, in case you wanna edit those manually), if you're not using C# the format is still simple enough for you to just reimplement that loading.