Just to start things a bit, here is an updated deck builder (v1) that will support cards.dat without 2k limit (with an example cards.dat file of 4000+ cards). Make a COPY of your manalink Program directory and unpack the archive there. Then run deck.exe to get it working - it will crash magic.exe as it doesn't support the big .dat files yet, so make sure you use copy of your manalink

You'll notice that skin is reverted and cards use ugly old manalink 1.3 backgrounds. Read on.
While updating the DLLs for new card limit I have decided to reorganize them a bit. I have moved all image decompression code to an external image.dll and modified the other files to use it. That means that whenever cardartlib.dll, drawcardlib.dll, deckdll.dll (and soon magic.exe and shandalar.exe) attempts to load a .pic, .pcx, .jpg or .bmp file it will all go through the same call to image.dll. The library doesn't care about file extension so replacing an old image is very easy, just name your file like the old one and it should work. Currently image.dll supports jpg, png, pcx, bmp and pic(microprose) files (some rarely used combinations are not supported like progressive png). To use it (in case you'd like to rewrite it or use in another file) just call LoadImage(Filename, PaletteHandle, Width, Height). Filename is the full path of image to load, PaletteHandle is a global Palette handle from the calling application. This one is needed only if you want to support original .pic files as these most of the time do not contain palette otherwise set to 0. Width and Height are either 0 for original image dimensions or set to get a resized image. Returned is a DIB handle of loaded image (or 0 if failed). It's always 32-bit rgb image (regardless of the source).
So... to get new deck builder skinned just like your old one, you'll need to go to CardArt subdir and copy the .bmps over the original .pics (after maybe compressing them into .pngs first) - this will get card backgrounds back to my old manalink 2.0 versions and then go to DBArt and do the same with all skin .bmps too - rename them to .pic. Running deck.exe should show deck builder with the new graphics.
The other changes are done to cardartlib.dll. It will now load the images either by their number like before or in the format similar to the one proposed by Snacko in his dll rewrite: "<cardname>.jpg" and "<cardname> (<subpic>).jpg" (of course the images only need to be called .jpg but can be of any format supported by image.dll as listed above). The new format names are checked first. The difference is that I strip the accented characters from the filenames because not all windows locales accept all special characters in file names. I know mine will not allow some of them. That's done crudely with a simple table replacing accented character with another one and then stripping some of the illegal characters like "*/\? and so on. For that purpose I include a small renaming tool. Run it from command line for example like this:
RenPics.exe CardL.dat CardArtLim CardArtLim_new
and it will COPY (not move) the images from CardArtLim to CardArtLim_new with the new names (the output directory will be created if it does not exist). You can run it over any combination of .dat and source gfx directory. Then you can simply merge the images from CardArtLim_new with all other ones and finally replace the CardArtNew with a version that only have newly named files. I plan to write another small tool, that will scan the CardArtNew and then run though cards.dat and update the subpictures number for any card based on actual existing images. That will make it easy for anyone to have own images without constantly updating csv file.
Disclaimer: I do not mean these are the final solution to anything. When Snacko completes his dll rewrites, you are free to use them, I'm here only to remove the 2k limit and not to hinder the progress of the game especially when I'll be gone soon. And it's better to have cleanly written new versions instead of resourced crap.