I use main.material.json on my map from the West Coast map. In the last update, I ran into an important problem — half of the textures are now taken from a completely different map, although the main.material from johnson valley is not in my map files. In short, about the problem, why is the texture taken from another map and how to put it on the desired main material?
In BeamNG you can use assets and materials from other maps without making a copy of it. Using shared resources makes your map smaller in size. For a modder there is the risk of "no material" if the devs change things in the vanilla levels. You could manually copy the materials to your map and manually adjust the materials.json. If you are lazy you could try out my tool to copy assets from one map to another: https://www.beamng.com/threads/beamng-tool-for-map-creators-updated-2024-02-25.89058/ I just tested it. Open the tool. Go to Copy assets. Choose the vanilla west_coast_usa level as source. Choose your zipped modded level as target. I just copied one asset: sign_lemon.dae because it uses the material from your screenshot. After pressing "COPY ASSETS" you can build a new zip file with the tool. What it does is copying the dae and all materials to your level together with a generated materials.json file. If the textures are in a third level like johnson valley in your case it copies it from johnson valley. See the screenshots below.