Another way to find and change automatically produced messages is by looking at responses.
If you type “responses all” it will give you an enormous list of every response message, and you can try searching through it for your phrase. You have to be careful about adaptive text when you’re figuring out how to search–“arrives” here comes from the verb “arrive” so in this case you want to search for “[arrive]”.
(Using Brian’s suggestion of “rules” to figure out the rule would perhaps cut down the effort of finding this.)
Anyhow, this turns out to be the describe room gone into rule response (F): “[The actor] [arrive] from [the back way]”. (There are a couple other messages for up and down, and a case where the way the actor came in doesn’t match up with the map in a neat way.) “The back way” here is a local variable defined in the rule, which is the opposite of the noun. So another thing you could do is change this response:
The describe room gone into rule response (F) is "[if the actor is the monster]Aaaaah! The monster crashes in from [the back way][otherwise][The actor] [arrive] from [the back way]"
This might be something to do if you really need to capture all the logic in the describe room gone into rule, which has a lot of edge cases. If none of those edge cases apply, it’s probably simpler to use Mike’s After rule. (Though you should use “the opposite of the noun”–again assuming no edge cases like up or down connection.)
…in fact, one issue is that the responses in the describe room gone into rule basically have a hard-coded period at the end. (There’s a bunch of different responses without periods, designed to accommodate extra clauses for cases like the case where an actor is pushing something, which you may be in, etc.) So if you want to have an exclamation point you definitely need to do something besides just rewriting responses.