Unlike what you normally program your blocks, this one avoids an issue where the block can react to controls multiple times per frame (via a cooldown timer) should multiple collision points (how the player interacts with objects) touches the same block (or multiple blocks using the same input), while having multiple offsets run the same code.
Approved, as it works as intended. However, please take note that you've forgotten to change just one address to SA-1 hybrid, and it happens to be $1DFB. So, in a SA-1 ROM, your PSwitch block didn't change the music accordingly. Not a removal reason, though.