So I was out mowing the lawn and I had an idea. My apologies if this has been suggested before.
So the 16 shader limit is a real bummer with fancy models, no? Wellll.... how about this. Combine images into larger images and adjust the texture coordinates appropriately. For instance, say you have two 512 by 512 images. Make one 512 by 1024 image. Reassign texture coordinates for meshes using the first texture so they run from a min of 0,0 to a max of .5, 1 instead of 1,1. Reassign the coordinates for meshes using the second texture so they run from .5, 0 to 1, 1. Get it? It would take a bit of work, and the more textures you're trying to eliminate the more of a pain it would be, but I bet it would work.