That would require some way to provide additional texture inputs to the pixel shader beyond the current color/alpha tile maps. Baughn, have you thought about that at all? I know you're making a bunch of changes to the texture atlasing...
Assuming I can get texture arrays to work (I will, by hook or by crook, but I'm really annoyed by the lack of good opengl debugging options in linux right now), then yes. Discussed it a little while back, but you can define tilesets to include any number of 2D texture arrays, each containing any number of tiles.
The non-shader modes just use the first 256 tiles of the first array (modulo graphics-mode, which I've thought a little about but won't deal with until I've
got this bloody thing working), and if you don't explicitly name an array in a shader (or #ifdef it out based on runtime-defined constants, heh) it isn't loaded at all in shader-mode, so there's no overhead to that.
Meanwhile, you get any number of sampler2DArrays, each of whatever tile-size and layer-count you like.
That's sufficient, right? Or did you have something else in mind?
EDIT: Oh, I should probably allow you to specify other options than RGBA for loading the tilesets. No point in using four bytes per pixel if only one channel is meaningful, after all..