Yes, I would add a few surface shaders under the base colors and hook masks in there (or use altitude or slope restraints) to see the basic layout in basic colors first. Then add all colors (incluing indeed reflective) as children of each surface layer.
Masks are sometimes easy, sometimes pretty hard to get, so you need to experiment with that. Good practise is to add a final surface layer at the end of the line with a test color and hook everything you want to see into mask input. You can use color adjusts to change masks, or use (blue nodes) add, multiply, mix, subtract, etc to combine masks. That can get pretty complicated, so name each node!