What about address conversion macro?
#define PPTR2FAR(x) ((void * far)(0x400000 | ((x >> 16) * 0x4000) | (x & 0x3FFF)))
No problem using it at compile time.
void * const far farptr = PPTR2FAR(0xFEBFFF); //extra parenthesis to be explicit
BTW, 0xFEFFFF is illegal PPAGE logical address, offset is out of PPAGE window 0x8000..0xBFFF.