Re camerapick being unreliable, how are you setting the entitybox? Never had a problem with it myself. You should set it up like so, for example ...
cube = createcube()
scalemesh cube, 10,10,1
entitypickmode cube, 3
entitybox cube, -10,-10,-1,20,20,2
Failing that - post some code which shows your issue and it's probably fixable.
cube = createcube()
scalemesh cube, 10,10,1
entitypickmode cube, 3
entitybox cube, -10,-10,-1,20,20,2
Failing that - post some code which shows your issue and it's probably fixable.