Latest two commits are the i63 demo fix (but shouldn't hurt anything on other demos).
Basically, the source engine keeps a set of "static baselines" for every entity type (an entity type being something like CTFPlayer, or CTFProjectileRocket) that tell the client how to initialize variables for that entity when a new one is created. This is so you don't have to network huge amounts of state every time a new entity is created, the engine can just say "hey, remember how I set up that entity? do that again". The problem is that some-fucking-how, a few of these baselines were missing (mostly spy weapon entities, and an engineer wrench entity).
There isn't really a safe way to deal with this, and it usually indicates that something is majorly fucked up with either the demo or the network stream, so the engine just crashes with an error message. Thing is, it appears that this was the *only* thing wrong with these demos. So I just modified the above tool to insert "empty" baselines for the missing entity types. I believe the engine zero-initializes stuff that isn't included in the baseline, so we just end up with fully zeroed-out network data for those entity types.
This may cause issues with those repaired entities, but in my experience, static baselines are sort of unnecessary, since data changes away from the static baselines so often that any issues won't last very long.
EDIT: Actually it appears only spy weapons were causing the issue.