This is likely simpler than you think. Or maybe not.
The colors for a surface are first chosen by a direct lookup into the current colormap. One color per patch. For example:
You should note there are only TWO patches shown there, each at a constant color, even though the array was a 2x3 array of values. So six colors are not shown. Only TWO different colors. Two patches, so two colors.
The level z of that surface is not constant over each patch. It varies considerably over the patches. However, if instead, I redraw the surface, but this time use an interpolated shading, now you see the difference across the two patches.