This script should already be able to do it:
https://github.com/TaylorMouse/MaxScrip ... rtModel.ms
See, what it's doing. It's checking to see if there's more than 2^15-1 indices, and if there are, it reads in INTs instead of SHORTs.
But, I think this is buggy, as nobody stores negative indices here. I think it should be checking for unsigned shorts, which are 2^16-1 (65535).
Unless someone can find a mesh file with vertices between 32767 and 65535 that clarifies this issue.
local nTotalVerts = readLong stream
local readshorts = true
if ( nTotalVerts > 32767 ) then readShorts = false
for f=1 to nTotalIndices / 3 do (
if readShorts then
append faces (_help.ReadTris stream)
else
append faces (_help.ReadIntTris stream)
)
foralltimes.mesh has vertices over 100k, so the script would read in INTs instead of SHORTs.