Incorporating culling in Scraggles' application remains a pointless exercise. Even if you culled 700 tiles in a frame, the remaining 300 tiles will still make his FPS crash (not un-playably so, but he'll still be in the same situation that prompted this thread).
Even if you dropped the dated six-planes culling method for something more modern and then replaced your brute-force approach with a spatial partitioning solution (a quad-tree would be perfect here) - you would still be plagued by performance issues due to those numerous, sub optimal draw calls (been there, done that, learnt the hard way).
Put simply - frustum culling is designed for programs that are vertex limited. This application is a long way from being vertex limited on any recent (and not so recent) computer hardware and hence frustum culling is not an appropriate solution here.
Now, regarding your suggestions for combining images. Since at least two edges of each sub-image won't be straddling the image edges, you will also need to apply a border around each image to prevent texture bleeding from adjoining sub-images due to texture filtering.
The size of this border will need to take into account how many mip-map levels will be used (if any) to avoid texture bleeding at lower texture resolutions. The UV values will of course require adjusting to take the borders into account.
To do this properly, the borders will have to consist of the same edge pixel data as the bordered image so that texture sampling will yield acceptable results. You couldn't just fill the border with a solid colour - say black - as you would obviously just end up bleeding that colour.
Additionally, the success of doing this all via memblocks relies on being able to cram every texture into a single image (which may or may not be possible, depending on how many textures will be required - and whether or not Scraggles is willing to suffer loss of quality if textures need to be shrunk to fit). This is because the 'make object' command only lets you assign a single texture to each object.
Ofcourse, you could always bodge it using multiple textures and multiple texture layers/units - but that's kind of a waste of fill rate. Another alternative would be to split the level over two or more objects/limbs (a couple of limbs is obviously still faster than 1000) and then just combine the textures over multiple images as required for each limb.
Yet another alternative would be to drop the image-combining idea altogether and simply combine multiple limbs into single limbs based on type. You won't have a single mesh object, so you're still losing speed, but it won't be as bad as having 1000 limbs either and it's very simple to implement.