First of all, the usual way to block updaters from writing files you don't want them to is to take ownership of the files as an administrator and deny access to write/delete. That might make the update tool error, but I expect it'll either skip the file or retry it indefinitely. Might be worth doing in case it skips.
Screenshot - I meant the texture tool list just before you get to the bit where you crash.
So far I haven't found any common denominator between those models, but I did have an idea that might prevent the crashing:
local entMT = FindMetaTable( "Entity" )
local evilProps =
{
"props_phx/trains/double_wheels_base.mdl",
"props_phx/misc/t_light_single_a.mdl",
"props_phx/misc/t_light_single_b.mdl",
"props_phx/misc/t_light_x.mdl"
}
local setModel = entMT.SetModel
function entMT:SetModel( mdl )
for k, v in next, evilProps do
if mdl:lower():find( v, 1, true ) then return false end
end
return setModel( self, mdl )
end
That should stop the spawn menu (or anything else for that matter) from spawning the bad models (the change will never reach GMod's C++, let alone the engine, let alone your client). I haven't tested it.
If you clear your spawnicons and let the spawn menu regenerate them, do you crash? (you might want to take a backup first)
You could also try making an addon folder with "override" set to 1 in its info.txt, and putting an empty file everywhere there's meant to be a PHX model - e.g. new text file, rename it to t_light_x.mdl and put it in ADDON/models/props_phx/misc/. If that doesn't work on the client, you could put it on the server as well, but I think it should.