Unfortunately Cyan assumes they can actually use this function like a C++ cast in a few places. I tried what you suggested and it broke some places where they use hsP3 on an out-parameter. Further refactoring could make that all work, but that's real effort >_>