I might not be understanding layers correctly, but this all looks right to me. What I'm expecting to happen is when I hit 'F12', the navigation cluster becomes a numpad but I can't figure out why it doesn't. I tried it as layer 2 since I assumed they started at 0 but I guess not.
// Phantom ANSI 150
static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* 0: qwerty */
KEYMAP_ANSI_150(\
ESC, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, FN2, PSCR,NLCK,BRK, \
GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, INS, HOME,PGUP, \
TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, DEL, END, PGDN, \
CAPS, A, S, D, F, G, H, J, K, L, SCLN,QUOT, ENT, TRNS,TRNS,TRNS, \
LSFT, Z, X, C, V, B, N, M, COMM,DOT, SLSH, RSFT, TRNS, UP, TRNS, \
LCTL,LGUI,LALT, SPC, RALT,FN1,RCTL, LEFT,DOWN,RGHT),
/* 1: number keys */
KEYMAP_ANSI_150(\
TRNS, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, PSCR,NLCK,BRK, \
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, PSLS,PAST,PMNS, \
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, P7, P8, P9, \
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, P4, P5, P6, \
TRNS, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, P1, P2, P3, \
TRNS,TRNS,TRNS, TRNS, TRNS,TRNS, TRNS, P0, PDOT,PPLS),
/* 2: media keys */
KEYMAP_ANSI_150(\
TRNS, TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS,TRNS,SLEP, \
TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS,TRNS,TRNS, \
TRNS,MPLY,MPRV,MNXT,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS,TRNS,TRNS, \
TRNS,MUTE,VOLD,VOLU,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS, \
TRNS, TRNS,TRNS,CALC,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS,TRNS, TRNS, TRNS,TRNS,TRNS, \
TRNS,TRNS,TRNS, TRNS, TRNS,TRNS, TRNS, TRNS,TRNS,TRNS)
};
static const uint16_t PROGMEM fn_actions[] = {
[0] = ACTION_LAYER_MOMENTARY(1), // FN0
[1] = ACTION_LAYER_TAP_KEY(2, KC_RGUI), // FN1
[2] = ACTION_LAYER_TOGGLE(3) // FN2
};