Large faces tend to end up with huge UV coord values, but the original game only allows 256/texture width repetitions. (unless there is a different rendering mode i am not aware of rn).
the solution is to split the large faces:
subdivision is trivial, just calculate average value between all pairs and create new mesh based on new points.
iterate over generated triangles until all individual pieces fit within the allowed absolute UV window.
