The size restrictions are caused by a number of factors with dat files. The vertex, nomal, uv, color, and other data can be in a number of different formats from [un]signed bytes and shorts to full floating point. These flags are specified in the vertex attribute data found in the file (in the same manner as the texture width, height, and format are specified in a texture object structure). The indexing of the vertices can also be in a few different fromats, usually bytes or shorts, also specified in the attribute data.
The offsets in data files are further complicated by the way this format uses a relocation table to keep a record of every file offset within the file. So any changes in size or placement mean every location that contains an offset value that would come after the increase in data would need to be modified in both the relocation table and any structures that reference the moved locations.
Changing the values of all this information in itself is not all that difficult once you know where they are and the format they are in, but could be a bit tedious (and i haven't tested the implications in-game yet).