I worked a little bit more on it, and thanks to my refactoring I have identified a bug in the original code (which I have intentionally retained in my own code because the point is to produce the same output as the original version, all the way down to and including bug-for-bug compatibility).
Description of bug, which I also posted as a comment on the OP gist:
> Player and other entities will never be placed on the rightmost column of the room floor, nor on the bottom-most row of the room floor. See https://gist.github.com/ctsrc/fef3006e1d728bb7271cff0656eb02... [...]. In my refactored version of your code the bug is explained at the line I linked to in this comment.
The link above goes to the first revision.
Here is a link to the most recent revision at all times:
https://gist.github.com/ctsrc/fef3006e1d728bb7271cff0656eb02...