Just to keep updated, I have successfully written code to extract DAT files. The existing program would be a pain in the ass to add this into (believe me, it is VERY sloppily coded), but I'm working on a new program which is more tidily coded and thus easier to add features to. My plan is for it to support not just extracting graphics to Lemmini, but more or less being a full-featured manager for Lemmings data files (basically, capable of editing as much as possible within the DAT files, apart from levels (since there's already three level editors out there) - I'll probably include basic functionality for levels but not full-blown editing, stuff along the lines of changing skills/title/etc). So you'll (finally) be able to create your own graphic sets. =D
I'm currently working on the code to compress them again. Initially I plan to just use faux-compression (ie: repeatedly using "store exact bytes"), but the algorithm is quite simple so at some point I'll probably develop a proper compression algorithm.
Just a warning: If you're going to start creating now (I wouldn't reccomend it, I'm notorious for not finishing what I start), the most likely format I'd use would be 24-color bitmaps. Not sure how I'll handle transparency, most likely using death magenta (it's worth noting that Lemmings only uses 18-bit color values, so you can use 255,0,255 for transparent and, say, 254,0,254 if you want the actual color - both would come out the same after converting to 18-bit anyway, but they can be detected seperately *before* the conversion). No idea what I'm going to do about objects yet. Of course, if you have any suggestions for what could work well, fire away. Keep in mind that I'm quite averse to using pre-existing libraries to load files, I prefer to write my own code so I know exactly how it works; this means that I'm probably not going to want to work with complex formats and would rather stick to simple ones like BMP.