BGM Looks ok. This whole thing is one big off-by-one clusterf*ck.

The whole range is still off, and the BGM loop is an atrocious piece of code.
I'm just going to throw it out and start over.