Tried to run under Linux (Ubuntu Dapper). Case-sensitive file/directories are somewhat ignored, so none of the levels will convert from LVL to INI if your export directory contains a capital letter. (interestingly, the graphics still convert without a hitch)
After picking a path that's entirely lowercase, the conversion process works fine for a while, but keels over when trying to patch the first level ("CRC of source differs from that in patch header"). One guess is that during the LVL2INI conversion process, the file I/O methods in UNIX Java translate "\n" into just a linefeed character (i.e. the civilized way), whereas under Windows Java it may instead give a carriage-return + linefeed (2 characters, a nasty relic from DOS and the norm for Windows text editing).
If this were the case it would certainly throw off the binary diff. Of course this is all guesswork, I haven't got a working Windows machine to litmus-test the theory on. Just for fun, here's my extracted copy of lvl1000.ini:
# LVL extracted by Lemmini # lvl1000.lvl
releaseRate = 1
numLemmings = 80
numToRecue = 80
timeLimit = 3
numClimbers = 0
numFloaters = 0
numBombers = 0
numBlockers = 0
numBuilders = 12
numBashers = 0
numMiners = 0
numDiggers = 0
xPos = 1216
style = brick
# Objects
# id, xpos, ypos, paint mode (), upside down (0,1)
# paint modes: 8=VIS_ON_TERRAIN, 4=NO_OVERWRITE, 0=FULL (only one value possible)
object_0 = 1, 1344, 128, 4, 0
object_1 = 1, 1408, 64, 4, 0
object_2 = 1, 1472, 0, 4, 0
object_3 = 0, 1376, 232, 4, 0
object_4 = 9, 1376, 264, 4, 0
# Terrain
# id, xpos, ypos, modifier
# modifier: 8=NO_OVERWRITE, 4=UPSIDE_DOWN, 2=REMOVE (combining allowed, 0=FULL)
terrain_0 = 24, 1376, 198, 0
terrain_1 = 24, 1440, 198, 0
terrain_2 = 24, 1436, 128, 0
terrain_3 = 24, 1500, 128, 0
terrain_4 = 24, 1500, 64, 0
terrain_5 = 24, 1564, 64, 0
terrain_6 = 31, 1508, 262, 0
terrain_7 = 31, 1568, 198, 0
terrain_8 = 31, 1632, 124, 0
terrain_9 = 30, 1508, 278, 0
terrain_10 = 30, 1508, 310, 0
terrain_11 = 30, 1568, 214, 0
terrain_12 = 30, 1568, 246, 0
terrain_13 = 30, 1568, 278, 0
terrain_14 = 30, 1568, 310, 0
terrain_15 = 30, 1632, 140, 0
terrain_16 = 30, 1632, 172, 0
terrain_17 = 30, 1632, 204, 0
terrain_18 = 30, 1632, 236, 0
terrain_19 = 30, 1632, 268, 0
terrain_20 = 30, 1632, 300, 0
terrain_21 = 30, 1696, 288, 0
terrain_22 = 30, 1696, 256, 0
terrain_23 = 30, 1696, 224, 0
terrain_24 = 30, 1696, 192, 0
terrain_25 = 30, 1696, 160, 0
terrain_26 = 30, 1696, 128, 0
terrain_27 = 30, 1696, 96, 0
terrain_28 = 30, 1696, 64, 0
terrain_29 = 30, 1696, 32, 0
terrain_30 = 30, 1696, 0, 0
terrain_31 = 2, 1432, 302, 0
terrain_32 = 2, 1368, 302, 0
terrain_33 = 2, 1304, 302, 0
terrain_34 = 19, 1714, 0, 4
terrain_35 = 19, 1778, 0, 4
terrain_36 = 20, 1834, -8, 4
terrain_37 = 20, 1834, 8, 4
terrain_38 = 20, 1850, -8, 4
terrain_39 = 19, 1714, 288, 8
terrain_40 = 19, 1778, 288, 8
terrain_41 = 20, 1834, 302, 8
terrain_42 = 20, 1834, 286, 8
terrain_43 = 20, 1850, 302, 8
terrain_44 = 19, 1240, 288, 8
terrain_45 = 19, 1208, 288, 8
terrain_46 = 19, 1208, 0, 12
terrain_47 = 19, 1272, 0, 12
terrain_48 = 19, 1336, 0, 12
terrain_49 = 19, 1368, 0, 4
terrain_50 = 20, 1424, 8, 4
terrain_51 = 20, 1440, -8, 4
terrain_52 = 20, 1424, -8, 4
terrain_53 = 20, 1296, 286, 0
terrain_54 = 20, 1312, 302, 0
terrain_55 = 20, 1296, 302, 0
terrain_56 = 42, 1216, 0, 0
terrain_57 = 42, 1248, 0, 0
terrain_58 = 35, 1234, 32, 0
terrain_59 = 42, 1250, 160, 0
terrain_60 = 42, 1218, 160, 0
terrain_61 = 42, 1232, 192, 0
terrain_62 = 42, 1752, 288, 0
terrain_63 = 42, 1784, 288, 0
terrain_64 = 35, 1768, 160, 0
terrain_65 = 42, 1752, 128, 0
terrain_66 = 42, 1784, 128, 0
terrain_67 = 42, 1766, 96, 0
terrain_68 = 20, 1200, 286, 0
terrain_69 = 20, 1200, 302, 0
terrain_70 = 20, 1200, 8, 12
terrain_71 = 20, 1198, -6, 12
#Steel
# id, xpos, ypos, width, height
#Name
name = It's all a matter of timing