I'll try to answer just one of the points... You can eliminate the waviness on flat surfaces by (a) increasing the segmentation or (b) approaching the material precision to -> 1.
Material precision at 0 is ignored. Large numbers mean low precision and the closer it is to 1, the higher the precision. If you have walls or floors for instance, the ideal way to eliminate the waviness is to set precision between 1 and 20. Increasing the segmentation does the trick as well, but might be more costly for performance, since it implies having more triangles to render.
