The 16 tile limit is purely because the game only allocates 4 bits per terrain node for tile variance. The engine actually supports more than 16 tiles just one cannot ever use them as overflow in the 4 bit field causes other tile types to be used. Fixing this is likely a non-trivial change, especially with backwards compatibility, and will degrade performance due to having to allocate at least another 2 bytes per terrain node.
Ironically it also allocates 4 bytes for cliff type as well. However only the first 2 values function correctly with all others resulting in buggy cliff meshes.