After a fair bit of experimentation, I think I've reverse-engineered the details of how kActor::MeleeObject() works. I also documented kActor::InteractActorsAtPosition(), which can, for example, be used to implement custom alternatives to MeleeObject().