Any new object types/states/sprites (and various other things that aren't relevant to the issue you're currently having) need to be declared as such in a FREESLOT block at the top of your SOC (or at least before the places where you use them). This tells the game that you intend to use those values and it needs to assign a free slot in the data tables to the identifiers you showed it. So for your specific uses, you'd do this in SOC:
FREESLOT
MT_MINI_THOK
S_MINI_THOK
SPR_TDTK
or this in Lua:
freeslot("MT_MINI_THOK", "S_MINI_THOK", "SPR_TDTK")
but not both in one WAD, since that causes confusion. (If you use the freeslots in a Lua script, or in both a Lua script and an SOC, declare them in Lua; if you only use them in SOC, you can declare them in either, but you should probably do so in SOC because why would you make a Lua script just to declare SOC freeslots?)