Out of curiosity, why aren’t types such as FVector templated, so they can be 16 or 64bit floating point types? Is it a deliberate design decision?
Depending on the answer, I’ll either go down the path of creating specialised versions of these for my project, or make the existing types templates/generic and possibly submit a pull request later.