You're probably busy with life and all, but there's a bug in both my game and the v5 download of your tutorial where the normal mapping on the walls doesn't continue once the camera is moved outside the initial view. I've been trying to mess around with values to fix it, but you would probably have a better understanding of why that is.
EDIT: I figured it out!
In the obj_setup create event, under the Nbegin() function, instead of using matrix_set()... do
tilemap_x(layer_tilemap_get_id("Normal"),-global.vx); tilemap_y(layer_tilemap_get_id("Normal"),-global.vy);
right below setting the surface target and then also remove the matrix_set() from Nend() as well. The problem is that it was drawing the surface at the top left of the screen at all times, and then keeping it there, regardless of camera movement. What the tilemap code does is actually keep the surface on the viewport at all times and just moves the tilemap itself to always stay in the same spot room-wise.