Normally if you have a MODELDEF definition that attaches a model to an actor's sprite, that sprite doesn't have to be a real sprite name, it can be anything. (I often use something like 0000 or MODL.) But there's one exception to it: if a non-existent sprite name is used like that as the very first sprite in the actor's Spawn state, even if a model is attached to it, it won't spawn and will report a "has no frames" error.
This can be circumvented by either defining an existing sprite name, or by adding TNT1 A 0 as the first sprite.
What's more, this only affects pre-placed actors. If an actor is spawned or dropped by another actor, or spawned via console, then the sprite name check is skipped and you'll see the actor with the model properly attached.
This seems like an oversight, so I suggest skipping the check for models entirely.