Hi, a little late to the party, but here I am

. Pixeldude is right.
If I have a surface type named 1ground, I can change it to 1grass_1ground, etc. and it's drivable (theoretically)?
I did not directly tried (so it might very well work) but I would not recommend using 2 key surfaces in the same name (this used to create problems for pits for example).
In your example, if you want GRASS behavior, just name it 1GRASS.
If you have multiple grass meshes (very likely), then you can do 1GRASS.001, 1GRASS.002, 1GRASS.153, etc. Or any suffix for that matter. Or you can change the prefix like 1GRASS, 2GRASS, 3GRASS, etc. and then play with suffix. You have a LOT of liberty.
Just avoid 0 or no number in front (then they will be just geometry).
Also, avoid 01GRASS-09GRASS range. I did not try it lately, but I distinctively remember Si3v saying it should be avoided (albeit a long time ago). And it shouldn't work, imo, as it starts with a 0

.
And any collision mesh (even a rock) needs the wall convention.
YES.
And remember, keep simple geometry here. The simpler the better. You can just build an invisible hexagon or something around your rock, if too "high-poly").
If I have a portion that is asphalt (where in some cases would be dirt), it needs to be 17road_1asphalt?
Not sure I understand, but you cannot combine properties in the same mesh, just by naming. 1 mesh = 1 surface type.
If you want custom asphalt, and custom dirt areas for example.
1/ define separate keys in the surfaces.ini file. 1 key for asphalt, 1 key for dirt.
2/ name the meshes independently, according to wished properties.
Hope this helps. If not, ask again
