Curvature controlled spatial smoothing factor
The spatial smoothing factor in MLS smoothing is currently a constant. This must adapt depending upon some estimate of surface curvature. My current thinking is that it starts high but decrements each iteration by an amount determined by a curvature estimate. A high curvature will result in a rapidly diminishing smoothing factor over iterations which has the effect of reducing the smoothing radius and therefore reducing the planing over smooth effect.
A curvature estimate might be as simply as looking at the cross support region extremes and seeing by how much they deviate from a line. Probably too simple and the extremes should be selected as extremes with respect to the current smoothing parameter. This would means the smoothing decrement will also not be a constant.