Wow, this is getting very close to what I'm looking for. However, the object in question is a tileset. If I do:
Set Y to min(self.Y, mytileset.BBoxTop-self.height/2)
the player is teleported out of bounds because the tileset takes the entire map. But... this is so close from what I'm looking for.
I might have an idea. I can store the Y value when the player collides with the floor, and then do the min of self.y and that specific value...