I have just implemented and released code for calculating a BigDecimal raised to the power of another BigDecimal:
I have not fully tested it, but it seems to work.
It would be great to have this functionality in Java and so I'm offering it.
I nearly developed the method two years ago, but stuck at square roots as that is all I needed and then I found oJalgo and 128 bit precision was enough until now. I expect there are other implementations around, but I could not find any and decided anyway to practice some computational maths.