Excellent detective work! I can now reproduce this here
You are correct, the system local setting is the root cause. I've looked into the code and can provide an explanation for the behaviour:
- The geometry files contain the vertex data as floating-point with a '.' separator
- An instance of a java.util.Scanner is used to parse that data
- The scanner will pick up the current system locale and use that to interpret the floating point number
That's all well, but on systems that do not have "." as a floating-point separator, an exception will be thrown that forces the geometry back to a triangle. The workaround is to, as you say, change to a locale that has a "." separator.
Many thanks for finding and reporting this issue!