diff --git a/keyboard/planck/PCB_GUIDE.md b/keyboard/planck/PCB_GUIDE.md
index e4c307b44a..833e144b3b 100644
--- a/keyboard/planck/PCB_GUIDE.md
+++ b/keyboard/planck/PCB_GUIDE.md
@@ -33,7 +33,7 @@ Generally, the instructions to flash the PCB are as follows:
 2. Save the file
 3. `make clean`
 4. Press the reset button on the PCB/press the key with the `RESET` keycode
-5. `make dfu` - use the necessary `KEYMAP=<keymap>` or `COMMON=true` here.
+5. `make <arguments> dfu` - use the necessary `KEYMAP=<keymap>` and/or `COMMON=true` arguments here.
 
 ## Extended keymap
 
diff --git a/keyboard/planck/common_keymaps/keymap_shane.c b/keyboard/planck/common_keymaps/keymap_shane.c
index d4e40fe63a..8d5ad68753 100644
--- a/keyboard/planck/common_keymaps/keymap_shane.c
+++ b/keyboard/planck/common_keymaps/keymap_shane.c
@@ -1,5 +1,3 @@
-// https://github.com/shanecelis/tmk_keyboard/blob/master/keyboard/planck/keymap_shane.c
-
 #include "keymap_common.h"
 #include "action_layer.h"
 #include "action.h"
@@ -11,30 +9,30 @@
 */
 const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
   [0] = KEYMAP_AND_SWAP( /* Base */
-    TAB,	Q,	W,	E,	R,	T,	Y,	U,	I,	O,	P,	MINS,
-    LCTL,	A,	S,	D,	F,	G,	H,	J,	K,	L,	SCLN,	BSPC,
-    LSFT,	Z,	X,	C,	V,	B,	N,	M,	COMM,	DOT,	SLSH,	FN5,
-    /*ALPHA*/FN3,	/*HYPER*/	/*SUPER*/LGUI, /*META*/LALT, LCTL,	FN2,	FN6,	FN1,	LEFT,	DOWN,	UP,	RGHT),
+    TAB,  Q,  W,  E,  R,  T,  Y,  U,  I,  O,  P,  MINS,
+    LCTL, A,  S,  D,  F,  G,  H,  J,  K,  L,  SCLN, BSPC,
+    LSFT, Z,  X,  C,  V,  B,  N,  M,  COMM, DOT,  SLSH, FN5,
+    /*ALPHA*/FN3, /*HYPER*/ /*SUPER*/LGUI, /*META*/LALT, LCTL,  FN2,  FN6,  FN1,  LEFT, DOWN, UP, RGHT),
   [2] = KEYMAP_AND_SWAP( /* More modifiers */
-    TRNS,	TRNS,	TRNS,	TRNS,	TRNS,	TRNS,	TRNS,	TRNS,	TRNS,	TRNS,	TRNS,	TRNS,
-    TRNS,	TRNS,	TRNS,	TRNS,	TRNS,	TRNS,	TRNS,	TRNS,	TRNS,	TRNS,	TRNS,	TRNS,
-    TRNS,	TRNS,	TRNS,	TRNS,	TRNS,	TRNS,	TRNS,	TRNS,	TRNS,	TRNS,	TRNS,	TRNS,
-    TRNS,	TRNS,	TRNS,	TRNS,	TRNS,	TRNS,	TRNS, RCTL, RALT, RGUI,	TRNS),
+    TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
+    TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
+    TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
+    TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, RCTL, RALT, RGUI, TRNS),
   [4] = KEYMAP_AND_SWAP( /* WASD */
-    TRNS,	TRNS,	UP,	TRNS,	TRNS,	TRNS,	TRNS,	TRNS,	TRNS,	TRNS,	TRNS,	TRNS,
-    TRNS,	LEFT,	DOWN,	RIGHT,	TRNS,	TRNS,	TRNS,	TRNS,	TRNS,	TRNS,	TRNS,	TRNS,
-    TRNS,	TRNS,	TRNS,	TRNS,	TRNS,	TRNS,	TRNS,	TRNS,	TRNS,	TRNS,	TRNS,	TRNS,
-    TRNS,	TRNS,	TRNS,	TRNS,	TRNS,	TRNS,	TRNS, TRNS, TRNS, TRNS, TRNS),
+    TRNS, TRNS, UP, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
+    TRNS, LEFT, DOWN, RIGHT,  TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
+    TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
+    TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS),
   [6] = KEYMAP_AND_SWAP( /* Raise/FN1 */
-    FN23,	1,	2,	3,	4,	5,	6,	7,	8,	9,	0,	EQL,
-    TRNS,	F1,	F2,	F3,	F4,	F5,	F6,	F7,	F8,	F9,	F10,	ENT,
-    TRNS,	TRNS,	TRNS,	TRNS,	TRNS,	TRNS,	TRNS,	TRNS,	TRNS,	TRNS,	BSLS,	TRNS,
-    PAUS,	TRNS,	TRNS,	TRNS,	TRNS,	BSPC,	TRNS,	MUTE,	PGUP,	PGDN,	MNXT),
+    FN23, 1,  2,  3,  4,  5,  6,  7,  8,  9,  0,  EQL,
+    TRNS, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10,  ENT,
+    TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, BSLS, TRNS,
+    PAUS, TRNS, TRNS, TRNS, TRNS, BSPC, TRNS, MUTE, PGUP, PGDN, MNXT),
   [8] = KEYMAP_AND_SWAP( /* Lower/FN2 */
-    ESC,	TRNS,	TRNS,	TRNS,	TRNS,	TRNS,	TRNS,	TRNS,	TRNS,	FN19,	FN20,	TRNS,
-    TRNS,	TRNS,	TRNS,	TRNS,	CAPS,	TRNS,	TRNS,	TRNS,	TRNS,	TRNS,	TRNS,	QUOT,
-    TRNS,	TRNS,	TRNS,	TRNS,	TRNS,	TRNS,	FN24,	FN25,	LBRC,	RBRC,	TRNS,	TRNS,
-    FN4,	TRNS,	TRNS,	TRNS,	TRNS,	ENT,	TRNS,	MPLY,	VOLD,	VOLU,	MPRV),
+    ESC,  TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, FN19, FN20, TRNS,
+    TRNS, TRNS, TRNS, TRNS, CAPS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, QUOT,
+    TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, FN24, FN25, LBRC, RBRC, TRNS, TRNS,
+    FN4,  TRNS, TRNS, TRNS, TRNS, ENT,  TRNS, MPLY, VOLD, VOLU, MPRV),
 };
 
 enum function_id {
@@ -97,4 +95,4 @@ const uint16_t PROGMEM fn_actions[] = {
   [24] = ACTION_MODS_KEY(MOD_LSFT, KC_LBRC),
   [25] = ACTION_MODS_KEY(MOD_LSFT, KC_RBRC),
   [26] = ACTION_MODS_KEY(MOD_LSFT, KC_BSLS),
-};
+};
\ No newline at end of file
diff --git a/keyboard/planck/keymap_common.h b/keyboard/planck/keymap_common.h
index d888d81733..4a0bcfbb08 100644
--- a/keyboard/planck/keymap_common.h
+++ b/keyboard/planck/keymap_common.h
@@ -82,5 +82,48 @@ extern const uint16_t fn_actions[];
     { KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37, KC_##K38, KC_##K39, KC_##K3A, KC_##K3B }  \
 }
 
+#define KEYMAP_REVERSE(                                                 \
+  K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B,           \
+  K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B,           \
+  K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B,           \
+  K30, K31, K32, K33, K34,    K35,   K37, K38, K39, K3A, K3B            \
+  ) {                                                                   \
+    { KC_##K0B, KC_##K0A, KC_##K09, KC_##K08, KC_##K07, KC_##K06, KC_##K05, KC_##K04, KC_##K03, KC_##K02, KC_##K01, KC_##K00 }, \
+    { KC_##K1B, KC_##K1A, KC_##K19, KC_##K18, KC_##K17, KC_##K16, KC_##K15, KC_##K14, KC_##K13, KC_##K12, KC_##K11, KC_##K10 }, \
+    { KC_##K2B, KC_##K2A, KC_##K29, KC_##K28, KC_##K27, KC_##K26, KC_##K25, KC_##K24, KC_##K23, KC_##K22, KC_##K21, KC_##K20 }, \
+    { KC_##K3B, KC_##K3A, KC_##K39, KC_##K38, KC_##K37, KC_##K35, KC_##K35, KC_##K34, KC_##K33, KC_##K32, KC_##K31, KC_##K30 },   \
+            }
+
+#define KEYMAP_AND_REVERSE(args...) KEYMAP(args), KEYMAP_REVERSE(args)
+
+#define KEYMAP_SWAP(                                                    \
+  K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B,           \
+  K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B,           \
+  K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B,           \
+  K30, K31, K32, K33, K34,    K35,   K37, K38, K39, K3A, K3B            \
+  ) {                                                                   \
+    { KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K0A, KC_##K0B, KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05 }, \
+    { KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K1A, KC_##K1B, KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15 }, \
+    { KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K2A, KC_##K2B, KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25 }, \
+    { KC_##K37, KC_##K38, KC_##K39, KC_##K3A, KC_##K3B, KC_##K35, KC_##K35, KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34 },    \
+}
+
+#define KEYMAP_AND_SWAP(args...) KEYMAP(args), KEYMAP_SWAP(args)
+
+/*
+   Keymap for the Planck 48 key variant.
+ */
+#define KEYMAP_48( \
+    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, \
+    K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, \
+    K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, \
+    K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B  \
+) { \
+    { KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K0A, KC_##K0B }, \
+    { KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K1A, KC_##K1B }, \
+    { KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K2A, KC_##K2B }, \
+    { KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37, KC_##K38, KC_##K39, KC_##K3A, KC_##K3B }, \
+}
+
 
 #endif