Ask me about my source port
One thing confusing the issue is that, Doom missiles don't always explode on the outside surface of a wall. Missiles regularly pass deep within, say, a pillar before they explode, since the missile "jumps" by a fixed amount each frame. One frame, the missile is outside the pillar, and the very next frame, it is deep within, and, that's when the explosion is triggered.
In fact, Doom does not even calculate which wall the missile hit - the engine stops checking, as soon as it finds any wall that would block the missile. If your engine draws wall splats, this can make a splat get placed inside the pillar, quite frequently. The fix is to move the missile back to where it was before the explosion, then do a line trace/wall intersection call from the reverted missile position, in the same direction the missle was travelling. This can determine exactly where the missile should have exploded, so, then, you move the missile there, and trigger the explosion sequence. But, this is an expensive calculation.