diff --git a/include/context.h b/include/context.h
index 8c15ef63..85676cf0 100644
--- a/include/context.h
+++ b/include/context.h
@@ -52,7 +52,7 @@ extern s32 D_ctx_80177B50[7];
 extern s32 D_ctx_80177B70[7];
 extern PlanetId D_ctx_80177B90[7];
 extern s32 D_ctx_80177BB0[7];
-extern s32 D_ctx_80177BD8[22]; // overruns D_ctx_80177C30?
+extern s32 gPlanetPathStatus[22]; // overruns D_ctx_80177C30?
 extern s32 gPrevPlanetTeamShields[6];
 extern s32 D_ctx_80177C58[6];
 extern u8  gSoundMode;
diff --git a/include/sf64audio_external.h b/include/sf64audio_external.h
index 23ae1fba..190f09be 100644
--- a/include/sf64audio_external.h
+++ b/include/sf64audio_external.h
@@ -6,6 +6,47 @@
 
 #define AUDIO_PLAY_SFX(sfxId, srcPos, token) (Audio_PlaySfx((sfxId),(srcPos),(token),&gDefaultMod,&gDefaultMod,&gDefaultReverb))
 #define AUDIO_PLAY_BGM(seqId) Audio_PlaySequence(SEQ_PLAYER_BGM, (seqId), 0, -1)
+#define AUDIO_SET_SPEC(sfxLayout, spec) Audio_SetAudioSpec(0, ((sfxLayout) << 8) | (spec))
+#define AUDIO_SET_SPEC_ALT(sfxLayout, spec) Audio_SetAudioSpec((sfxLayout), ((sfxLayout) << 8) | (spec))
+
+typedef enum {
+    /* 0 */ SFXCHAN_0,
+    /* 1 */ SFXCHAN_1,
+    /* 2 */ SFXCHAN_2,
+    /* 3 */ SFXCHAN_3
+} SfxChannelLayout;
+
+typedef enum {
+    /*  0 */ AUDIOSPEC_0,
+    /*  1 */ AUDIOSPEC_1,
+    /*  2 */ AUDIOSPEC_2,
+    /*  3 */ AUDIOSPEC_3,
+    /*  4 */ AUDIOSPEC_4,
+    /*  5 */ AUDIOSPEC_5,
+    /*  6 */ AUDIOSPEC_6,
+    /*  7 */ AUDIOSPEC_7,
+    /*  8 */ AUDIOSPEC_8,
+    /*  9 */ AUDIOSPEC_9,
+    /* 10 */ AUDIOSPEC_10,
+    /* 11 */ AUDIOSPEC_11,
+    /* 12 */ AUDIOSPEC_12,
+    /* 13 */ AUDIOSPEC_13,
+    /* 14 */ AUDIOSPEC_14,
+    /* 15 */ AUDIOSPEC_15,
+    /* 16 */ AUDIOSPEC_16,
+    /* 17 */ AUDIOSPEC_17,
+    /* 18 */ AUDIOSPEC_18,
+    /* 19 */ AUDIOSPEC_19,
+    /* 20 */ AUDIOSPEC_20,
+    /* 21 */ AUDIOSPEC_21,
+    /* 22 */ AUDIOSPEC_22,
+    /* 23 */ AUDIOSPEC_23,
+    /* 24 */ AUDIOSPEC_24,
+    /* 25 */ AUDIOSPEC_25,
+    /* 26 */ AUDIOSPEC_26,
+    /* 27 */ AUDIOSPEC_27,
+    /* 28 */ AUDIOSPEC_28,
+} AudioSpecID;
 
 typedef enum {
     /* 0 */ SOUNDMODE_STEREO,
diff --git a/include/sf64audio_provisional.h b/include/sf64audio_provisional.h
index cd9e95ed..8cece3a1 100644
--- a/include/sf64audio_provisional.h
+++ b/include/sf64audio_provisional.h
@@ -593,7 +593,7 @@ typedef struct {
  */
 typedef struct {
     /* 0x00 */ u32 samplingFrequency; // Target sampling rate in Hz
-    /* 0x04 */ u8 unk_04;
+    /* 0x04 */ u8 numBuffers;
     /* 0x05 */ u8 numNotes;
     /* 0x06 */ u8 numReverbs;
     /* 0x08 */ ReverbSettings* reverbSettings;
@@ -617,7 +617,7 @@ typedef struct {
  * processing audio commands. This struct parameterizes that buffer.
  */
 typedef struct {
-    /* 0x00 */ s16 specUnk4;
+    /* 0x00 */ s16 count;
     /* 0x02 */ u16 samplingFrequency;   // Target sampling rate in Hz
     /* 0x04 */ u16 aiSamplingFrequency; // True sampling rate of the audio interface (AI), see `osAiSetFrequency`
     /* 0x06 */ s16 samplesPerFrameTarget;
diff --git a/linker_scripts/us/symbol_addrs_engine.txt b/linker_scripts/us/symbol_addrs_engine.txt
index 01774f52..86fb770e 100644
--- a/linker_scripts/us/symbol_addrs_engine.txt
+++ b/linker_scripts/us/symbol_addrs_engine.txt
@@ -517,7 +517,7 @@ D_ctx_80177B70 = 0x80177B70;
 D_ctx_80177B90 = 0x80177B90;
 D_ctx_80177BB0 = 0x80177BB0;
 gControllerRumbleTimers = 0x80177BD0;
-D_ctx_80177BD8 = 0x80177BD8;
+gPlanetPathStatus = 0x80177BD8;
 D_ctx_80177C30 = 0x80177C30;
 D_ctx_80177C50 = 0x80177C50;
 D_ctx_80177C58 = 0x80177C58;
diff --git a/src/audio/audio_context.c b/src/audio/audio_context.c
index 347238e5..80da89e0 100644
--- a/src/audio/audio_context.c
+++ b/src/audio/audio_context.c
@@ -144,35 +144,92 @@ static ReverbSettings D_800C76A8[] = {
     { 1, 0x30, 0x4FFF, 0, 0 },
 };
 AudioSpec gAudioSpecs[] = {
-    { 0x7D00, 2, 0x16, 2, D_800C74D0, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0x35000 },
-    { 0x7D00, 2, 0x16, 2, D_800C74E0, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0x35000 },
-    { 0x7D00, 2, 0x16, 2, D_800C74F0, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0x35000 },
-    { 0x7D00, 2, 0x16, 2, D_800C7500, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0x35000 },
-    { 0x7D00, 2, 0x16, 2, D_800C7510, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0x35000 },
-    { 0x7D00, 2, 0x16, 2, D_800C7520, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0x35000 },
-    { 0x7D00, 2, 0x16, 2, D_800C7530, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0x35000 },
-    { 0x7D00, 2, 0x16, 2, D_800C7540, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0x35000 },
-    { 0x7D00, 2, 0x16, 2, D_800C7550, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0x35000 },
-    { 0x7D00, 2, 0x16, 2, D_800C7560, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0x35000 },
-    { 0x7D00, 2, 0x16, 2, D_800C7570, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0x35000 },
-    { 0x7D00, 2, 0x16, 2, D_800C7580, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0x35000 },
-    { 0x7D00, 1, 0x16, 2, D_800C7590, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x2B000, 0x35000 },
-    { 0x7D00, 2, 0x16, 2, D_800C75A0, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0x35000 },
-    { 0x7D00, 2, 0x16, 2, D_800C75B0, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0x35000 },
-    { 0x7D00, 2, 0x16, 3, D_800C75C0, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0x34000 },
-    { 0x7D00, 2, 0x16, 2, D_800C75D8, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0x35000 },
-    { 0x7D00, 2, 0x16, 2, D_800C75E8, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0x35000 },
-    { 0x7D00, 2, 0x16, 2, D_800C75F8, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0x35000 },
-    { 0x7D00, 2, 0x16, 2, D_800C7608, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0x35000 },
-    { 0x7D00, 2, 0x16, 2, D_800C7618, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0x35000 },
-    { 0x7D00, 2, 0x20, 2, D_800C7628, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0 },
-    { 0x7D00, 1, 0x20, 2, D_800C7638, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0 },
-    { 0x7D00, 1, 0x20, 2, D_800C7648, 0x7FFF, 0x1200, 0xA000, 0, 0x5B00, 0x1D00, 0, 0, 0 },
-    { 0x7D00, 1, 0x16, 2, D_800C7658, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0, 0x60000 },
-    { 0x7D00, 2, 0x16, 2, D_800C7668, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0 },
-    { 0x7D00, 2, 0x16, 2, D_800C7678, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0 },
-    { 0x7D00, 2, 0x20, 2, D_800C7688, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0 },
-    { 0x7D00, 2, 0x16, 2, D_800C74D0, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000, 0x35000 },
+    /*  0 */ { 32000, 2, 22, ARRAY_COUNT(D_800C74D0), D_800C74D0, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000,
+               0x35000 },
+    /*  1 */
+    { 32000, 2, 22, ARRAY_COUNT(D_800C74E0), D_800C74E0, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000,
+      0x35000 },
+    /*  2 */
+    { 32000, 2, 22, ARRAY_COUNT(D_800C74F0), D_800C74F0, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000,
+      0x35000 },
+    /*  3 */
+    { 32000, 2, 22, ARRAY_COUNT(D_800C7500), D_800C7500, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000,
+      0x35000 },
+    /*  4 */
+    { 32000, 2, 22, ARRAY_COUNT(D_800C7510), D_800C7510, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000,
+      0x35000 },
+    /*  5 */
+    { 32000, 2, 22, ARRAY_COUNT(D_800C7520), D_800C7520, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000,
+      0x35000 },
+    /*  6 */
+    { 32000, 2, 22, ARRAY_COUNT(D_800C7530), D_800C7530, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000,
+      0x35000 },
+    /*  7 */
+    { 32000, 2, 22, ARRAY_COUNT(D_800C7540), D_800C7540, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000,
+      0x35000 },
+    /*  8 */
+    { 32000, 2, 22, ARRAY_COUNT(D_800C7550), D_800C7550, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000,
+      0x35000 },
+    /*  9 */
+    { 32000, 2, 22, ARRAY_COUNT(D_800C7560), D_800C7560, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000,
+      0x35000 },
+    /* 10 */
+    { 32000, 2, 22, ARRAY_COUNT(D_800C7570), D_800C7570, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000,
+      0x35000 },
+    /* 11 */
+    { 32000, 2, 22, ARRAY_COUNT(D_800C7580), D_800C7580, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000,
+      0x35000 },
+    /* 12 */
+    { 32000, 1, 22, ARRAY_COUNT(D_800C7590), D_800C7590, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x2B000,
+      0x35000 },
+    /* 13 */
+    { 32000, 2, 22, ARRAY_COUNT(D_800C75A0), D_800C75A0, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000,
+      0x35000 },
+    /* 14 */
+    { 32000, 2, 22, ARRAY_COUNT(D_800C75B0), D_800C75B0, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000,
+      0x35000 },
+    /* 15 */
+    { 32000, 2, 22, ARRAY_COUNT(D_800C75C0), D_800C75C0, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000,
+      0x34000 },
+    /* 16 */
+    { 32000, 2, 22, ARRAY_COUNT(D_800C75D8), D_800C75D8, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000,
+      0x35000 },
+    /* 17 */
+    { 32000, 2, 22, ARRAY_COUNT(D_800C75E8), D_800C75E8, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000,
+      0x35000 },
+    /* 18 */
+    { 32000, 2, 22, ARRAY_COUNT(D_800C75F8), D_800C75F8, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000,
+      0x35000 },
+    /* 19 */
+    { 32000, 2, 22, ARRAY_COUNT(D_800C7608), D_800C7608, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000,
+      0x35000 },
+    /* 20 */
+    { 32000, 2, 22, ARRAY_COUNT(D_800C7618), D_800C7618, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000,
+      0x35000 },
+    /* 21 */
+    { 32000, 2, 32, ARRAY_COUNT(D_800C7628), D_800C7628, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000,
+      0x00000 },
+    /* 22 */
+    { 32000, 1, 32, ARRAY_COUNT(D_800C7638), D_800C7638, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000,
+      0x00000 },
+    /* 23 */
+    { 32000, 1, 32, ARRAY_COUNT(D_800C7648), D_800C7648, 0x7FFF, 0x1200, 0xA000, 0, 0x5B00, 0x1D00, 0, 0x00000,
+      0x00000 },
+    /* 24 */
+    { 32000, 1, 22, ARRAY_COUNT(D_800C7658), D_800C7658, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x00000,
+      0x60000 },
+    /* 25 */
+    { 32000, 2, 22, ARRAY_COUNT(D_800C7668), D_800C7668, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000,
+      0x00000 },
+    /* 26 */
+    { 32000, 2, 22, ARRAY_COUNT(D_800C7678), D_800C7678, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000,
+      0x00000 },
+    /* 27 */
+    { 32000, 2, 32, ARRAY_COUNT(D_800C7688), D_800C7688, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000,
+      0x00000 },
+    /* 28 */
+    { 32000, 2, 22, ARRAY_COUNT(D_800C74D0), D_800C74D0, 0x7FFF, 0x1200, 0x1100, 0, 0x5000, 0x2400, 0, 0x1B000,
+      0x35000 },
 };
 s32 D_800C7C28 = 0x20000000; // unused?
 s16 gSeqTicksPerBeat = 0x30;
diff --git a/src/audio/audio_effects.c b/src/audio/audio_effects.c
index 652686c7..925de24e 100644
--- a/src/audio/audio_effects.c
+++ b/src/audio/audio_effects.c
@@ -215,8 +215,7 @@ f32 func_80013B90(AdsrState* adsr) {
                     break;
                 default:
                     if (adsr->delay >= 4) {
-                        adsr->delay =
-                            (adsr->delay * gAudioBufferParams.ticksPerUpdate / gAudioBufferParams.specUnk4) / 4;
+                        adsr->delay = (adsr->delay * gAudioBufferParams.ticksPerUpdate / gAudioBufferParams.count) / 4;
                     }
                     if (adsr->delay == 0) {
                         adsr->delay = 1;
diff --git a/src/audio/audio_general.c b/src/audio/audio_general.c
index 0c10d4f9..67f061fa 100644
--- a/src/audio/audio_general.c
+++ b/src/audio/audio_general.c
@@ -82,7 +82,7 @@ u8 sSeqCmdWritePos = 0;
 u8 sSeqCmdReadPos = 0;
 u8 sStartSeqDisabled = 0;
 u8 sSoundModeList[4] = { SOUNDMODE_STEREO, SOUNDMODE_HEADSET, SOUNDMODE_SURROUND, SOUNDMODE_MONO };
-u8 sNewAudioSpecId = 0;
+u8 sNewAudioSpecId = AUDIOSPEC_0;
 u8 D_800C5D58 = 0;
 s32 D_800C5D5C = 0; // unused. file split?
 s8 sBaseReverb = 0;
@@ -751,7 +751,7 @@ void func_80017494(void) {
 }
 
 void func_80017550(void) {
-    if (sNewAudioSpecId == 12) {
+    if (sNewAudioSpecId == AUDIOSPEC_12) {
         AUDIOCMD_GLOBAL_SYNC_LOAD_SEQ_PARTS(14, 0);
     }
 }
@@ -2684,7 +2684,7 @@ void Audio_PlayFanfare(u16 seqId, u8 bgmVolume, u8 bgmFadeoutTime, u8 bgmFadeinT
 void func_8001D520(void) {
     u8 i;
 
-    if (sNewAudioSpecId == 24) {
+    if (sNewAudioSpecId == AUDIOSPEC_24) {
         Audio_ClearVoice();
         func_8001D6DC(0);
         AUDIO_PLAY_SFX(0x0903F004, gDefaultSfxSource, 4);
@@ -2840,9 +2840,9 @@ void func_8001DD40(void) {
     u16 sp1E = 1;
 
     Audio_StartSequence(SEQ_PLAYER_VOICE, SEQ_ID_VOICE, 0xFF, 1);
-    if (sNewAudioSpecId == 12) {
+    if (sNewAudioSpecId == AUDIOSPEC_12) {
         sp1E = 360;
-    } else if (sNewAudioSpecId < 23) {
+    } else if (sNewAudioSpecId < AUDIOSPEC_23) {
         sp1E = 90;
     }
     Audio_StartSequence(SEQ_PLAYER_SFX, SEQ_ID_SFX, 0xFF, sp1E);
@@ -2860,11 +2860,11 @@ void func_8001DD40(void) {
 }
 
 void func_8001DE1C(u8 oldSpecId) {
-    if (oldSpecId == 16) {
-        if ((sNewAudioSpecId == 22) || (sNewAudioSpecId == 23)) {
+    if (oldSpecId == AUDIOSPEC_16) {
+        if ((sNewAudioSpecId == AUDIOSPEC_22) || (sNewAudioSpecId == AUDIOSPEC_23)) {
             D_800C5D58 = 2;
         }
-    } else if ((oldSpecId == 28) && (sNewAudioSpecId == 23)) {
+    } else if ((oldSpecId == AUDIOSPEC_28) && (sNewAudioSpecId == AUDIOSPEC_23)) {
         D_800C5D58 = 2;
     } else {
         D_800C5D58 = 1;
diff --git a/src/audio/audio_heap.c b/src/audio/audio_heap.c
index df30ca33..6ae13ba7 100644
--- a/src/audio/audio_heap.c
+++ b/src/audio/audio_heap.c
@@ -535,7 +535,7 @@ void AudioHeap_UpdateReverbs(void) {
     s32 count;
     s32 reverbIndex;
 
-    if (gAudioBufferParams.specUnk4 == 2) {
+    if (gAudioBufferParams.count == 2) {
         count = 2;
     } else {
         count = 1;
@@ -563,7 +563,7 @@ s32 AudioHeap_ResetStep(void) {
     s32 j;
     s32 sp24;
 
-    if (gAudioBufferParams.specUnk4 == 2) {
+    if (gAudioBufferParams.count == 2) {
         sp24 = 2;
     } else {
         sp24 = 1;
@@ -665,12 +665,12 @@ void AudioHeap_Init(void) {
     gNumNotes = spec->numNotes;
     D_8014C1B0 = spec->unk_14;
     gMaxTempo = (u16) ((gAudioBufferParams.ticksPerUpdate * 2880000.0f / gSeqTicksPerBeat) / gMaxTempoTvTypeFactors);
-    gAudioBufferParams.specUnk4 = spec->unk_04;
-    gAudioBufferParams.samplesPerFrameTarget *= gAudioBufferParams.specUnk4;
-    gAudioBufferParams.maxAiBufferLength *= gAudioBufferParams.specUnk4;
-    gAudioBufferParams.minAiBufferLength *= gAudioBufferParams.specUnk4;
-    gAudioBufferParams.ticksPerUpdate *= gAudioBufferParams.specUnk4;
-    if (gAudioBufferParams.specUnk4 >= 2) {
+    gAudioBufferParams.count = spec->numBuffers;
+    gAudioBufferParams.samplesPerFrameTarget *= gAudioBufferParams.count;
+    gAudioBufferParams.maxAiBufferLength *= gAudioBufferParams.count;
+    gAudioBufferParams.minAiBufferLength *= gAudioBufferParams.count;
+    gAudioBufferParams.ticksPerUpdate *= gAudioBufferParams.count;
+    if (gAudioBufferParams.count >= 2) {
         gAudioBufferParams.maxAiBufferLength -= 0x10;
     }
     gMaxAudioCmds = (gNumNotes * 0x14 * gAudioBufferParams.ticksPerUpdate) + (spec->numReverbs * 0x20) + 0x1E0;
diff --git a/src/audio/audio_load.c b/src/audio/audio_load.c
index 72b07400..a86837e6 100644
--- a/src/audio/audio_load.c
+++ b/src/audio/audio_load.c
@@ -157,7 +157,7 @@ void AudioLoad_InitSampleDmaBuffers(s32 numNotes) {
     u8* dma;
 
     gSampleDmaBuffSize = 0x2D0;
-    for (i = 0; i < (3 * gNumNotes * gAudioBufferParams.specUnk4); i++) {
+    for (i = 0; i < (3 * gNumNotes * gAudioBufferParams.count); i++) {
         dma = AudioHeap_Alloc(&gMiscPool, gSampleDmaBuffSize);
         gSampleDmas[gSampleDmaCount].ramAddr = dma;
         if (dma == NULL) {
@@ -876,7 +876,7 @@ void AudioLoad_Init(void) {
             gAiBuffers[i][j] = 0;
         }
     }
-    gAudioSpecId = 0;
+    gAudioSpecId = AUDIOSPEC_0;
     gResetStatus = 1;
     AudioHeap_ResetStep();
     gSequenceTable = &gSeqTableInit;
diff --git a/src/audio/audio_thread.c b/src/audio/audio_thread.c
index 8d383393..e8c067b9 100644
--- a/src/audio/audio_thread.c
+++ b/src/audio/audio_thread.c
@@ -54,7 +54,7 @@ SPTask* AudioThread_CreateTask(void) {
     s32 pad30;
 
     gAudioTaskCountQ++;
-    if ((gAudioTaskCountQ % gAudioBufferParams.specUnk4) != 0) {
+    if ((gAudioTaskCountQ % gAudioBufferParams.count) != 0) {
         return gWaitingAudioTask;
     }
     osSendMesg(gAudioTaskStartQueue, (OSMesg) gAudioTaskCountQ, 0);
@@ -142,7 +142,7 @@ SPTask* AudioThread_CreateTask(void) {
         gMaxAbiCmdCnt = sp50;
     }
 
-    if (gAudioBufferParams.specUnk4 == 1) {
+    if (gAudioBufferParams.count == 1) {
         return gAudioCurTask;
     } else {
         gWaitingAudioTask = gAudioCurTask;
diff --git a/src/engine/fox_context.c b/src/engine/fox_context.c
index 0c17bcd8..aaf71bc6 100644
--- a/src/engine/fox_context.c
+++ b/src/engine/fox_context.c
@@ -51,9 +51,9 @@ s32 D_ctx_80177B70[7];
 PlanetId D_ctx_80177B90[7];
 s32 D_ctx_80177BB0[7];
 #ifdef AVOID_UB
-s32 D_ctx_80177BD8[24];
+s32 gPlanetPathStatus[24];
 #else
-s32 D_ctx_80177BD8[22]; // overruns gPrevPlanetTeamShields?
+s32 gPlanetPathStatus[22]; // overruns gPrevPlanetTeamShields?
 #endif
 s32 gPrevPlanetTeamShields[6];
 s32 D_ctx_80177C58[6];
diff --git a/src/engine/fox_load.c b/src/engine/fox_load.c
index 556a6c50..10081372 100644
--- a/src/engine/fox_load.c
+++ b/src/engine/fox_load.c
@@ -100,7 +100,7 @@ u8 Overlay_Load(u8 ovlSetup, u8 ovlStage) {
         case OVL_SETUP_TITLE:
             changeOvl = Overlay_Init(&sOvlmenu_Title[ovlStage]);
             if (changeOvl == true) {
-                Audio_SetAudioSpec(0, 0x16);
+                AUDIO_SET_SPEC(SFXCHAN_0, AUDIOSPEC_22);
             }
             break;
         case OVL_SETUP_MENU:
@@ -175,13 +175,13 @@ u8 Overlay_Load(u8 ovlSetup, u8 ovlStage) {
         case OVL_SETUP_VERSUS:
             changeOvl = Overlay_Init(&sOvli2_Versus[ovlStage]);
             if (changeOvl == true) {
-                Audio_SetAudioSpec(3, 0x310);
+                AUDIO_SET_SPEC_ALT(SFXCHAN_3, AUDIOSPEC_16);
             }
             break;
         case OVL_SETUP_LOGO:
             changeOvl = Overlay_Init(&sNoOvl_Logo[ovlStage]); // Logo does not load an overlay file
             if (changeOvl == true) {
-                Audio_SetAudioSpec(0, 0xE);
+                AUDIO_SET_SPEC(SFXCHAN_0, AUDIOSPEC_14);
             }
             break;
         case OVL_SETUP_CREDITS:
diff --git a/src/engine/fox_play.c b/src/engine/fox_play.c
index eacb4b2a..5a35483e 100644
--- a/src/engine/fox_play.c
+++ b/src/engine/fox_play.c
@@ -2371,17 +2371,17 @@ void func_play_800AB334(void) {
 
     switch (gCurrentLevel) {
         case LEVEL_TRAINING:
-            Audio_SetAudioSpec(0, 28);
+            AUDIO_SET_SPEC(SFXCHAN_0, AUDIOSPEC_28);
             D_ctx_8017796C = -1;
             break;
         case LEVEL_VENOM_1:
-            Audio_SetAudioSpec(0, 6);
+            AUDIO_SET_SPEC(SFXCHAN_0, AUDIOSPEC_6);
             break;
         case LEVEL_VENOM_2:
-            Audio_SetAudioSpec(0, 6);
+            AUDIO_SET_SPEC(SFXCHAN_0, AUDIOSPEC_6);
             break;
         case LEVEL_VENOM_ANDROSS:
-            Audio_SetAudioSpec(0, 15);
+            AUDIO_SET_SPEC(SFXCHAN_0, AUDIOSPEC_15);
             Audio_SetBaseSfxReverb(0);
             D_ctx_8017796C = -1;
             break;
diff --git a/src/overlays/ovl_i6/fox_andross.c b/src/overlays/ovl_i6/fox_andross.c
index 4a46719b..a1dd4acd 100644
--- a/src/overlays/ovl_i6/fox_andross.c
+++ b/src/overlays/ovl_i6/fox_andross.c
@@ -3947,7 +3947,7 @@ void Andross_80193C4C(Player* player) {
                     gNextGameState = GSTATE_ENDING;
                     D_ending_80196D00 = 0;
                     D_play_800D3180[LEVEL_VENOM_ANDROSS] = Play_CheckMedalStatus(200) + 1;
-                    Audio_SetAudioSpec(0, 0x1B);
+                    AUDIO_SET_SPEC(SFXCHAN_0, AUDIOSPEC_27);
                 }
             }
             break;
diff --git a/src/overlays/ovl_menu/fox_map.c b/src/overlays/ovl_menu/fox_map.c
index 7c412a6c..a8beb028 100644
--- a/src/overlays/ovl_menu/fox_map.c
+++ b/src/overlays/ovl_menu/fox_map.c
@@ -1154,7 +1154,7 @@ void Map_801A5E80(void);
 void Map_801A6368(void);
 void Map_801A61B4(LevelId level);
 bool Map_801A62FC(PlanetId planet);
-s32 Map_801A655C(PlanetId start, PlanetId end);
+s32 Map_GetPathId(PlanetId start, PlanetId end);
 void Map_801A6628(void);
 void Map_801A6694(void);
 void Map_801A68E4(void);
@@ -1266,7 +1266,7 @@ void Map_8019E99C(void) {
     s32 i;
     s32 j;
 
-    Audio_SetAudioSpec(0, 0x118);
+    AUDIO_SET_SPEC(SFXCHAN_1, AUDIOSPEC_24);
 
     gVIsPerFrame = 2;
     gGameFrameCount = 0;
@@ -1534,12 +1534,12 @@ void Map_8019F42C(void) {
 
     if (gCurrentPlanet != 0) {
         for (i = 0; i < gCurrentPlanet; i++) {
-            D_menu_801CD8E0[i] = Map_801A655C(D_ctx_80177B90[i], D_ctx_80177B90[i + 1]);
+            D_menu_801CD8E0[i] = Map_GetPathId(D_ctx_80177B90[i], D_ctx_80177B90[i + 1]);
         }
     }
 
     for (i = 0; i < 24; i++) {
-        D_ctx_80177BD8[i] = 0;
+        gPlanetPathStatus[i] = 0;
     }
 
     for (i = 0; i < 15; i++) {
@@ -1550,7 +1550,7 @@ void Map_8019F42C(void) {
 
     D_menu_801CD9AC = 0;
 
-    Audio_SetAudioSpec(0, 0x19);
+    AUDIO_SET_SPEC(SFXCHAN_0, AUDIOSPEC_25);
 
     D_menu_801CD948 = 0;
     D_menu_801CD94C = 0;
@@ -1586,7 +1586,7 @@ void Map_8019F600(void) {
 
     D_menu_801CD970 = 0;
     for (i = 0; i < 24; i++) {
-        D_ctx_80177BD8[i] = 0;
+        gPlanetPathStatus[i] = 0;
         gTexturedLines[i].unk_24 = 0.0f;
     }
 
@@ -1616,10 +1616,10 @@ void Map_8019F600(void) {
     D_menu_801CD9B4 = 0.01f;
     D_menu_801CD944 = 0;
 
-    sp18 = Map_801A655C(sCurrentPlanetId, sPlanets[sCurrentPlanetId].dest1);
-    temp_t4 = Map_801A655C(sCurrentPlanetId, sPlanets[sCurrentPlanetId].dest2);
-    D_ctx_80177BD8[sp18] = 1;
-    D_ctx_80177BD8[temp_t4] = 1;
+    sp18 = Map_GetPathId(sCurrentPlanetId, sPlanets[sCurrentPlanetId].dest1);
+    temp_t4 = Map_GetPathId(sCurrentPlanetId, sPlanets[sCurrentPlanetId].dest2);
+    gPlanetPathStatus[sp18] = 1;
+    gPlanetPathStatus[temp_t4] = 1;
 }
 
 void Map_8019F83C(void) {
@@ -1628,12 +1628,12 @@ void Map_8019F83C(void) {
     D_menu_801CD970 = 0;
 
     for (i = 0; i < 24; i++) {
-        if ((D_ctx_80177BD8[i] == 4) || (D_ctx_80177BD8[i] == 5) || (D_ctx_80177BD8[i] == 1) ||
-            (D_ctx_80177BD8[i] == 11)) {
-            D_ctx_80177BD8[i] = 0;
+        if ((gPlanetPathStatus[i] == 4) || (gPlanetPathStatus[i] == 5) || (gPlanetPathStatus[i] == 1) ||
+            (gPlanetPathStatus[i] == 11)) {
+            gPlanetPathStatus[i] = 0;
         }
 
-        if (D_ctx_80177BD8[i] == 6) {
+        if (gPlanetPathStatus[i] == 6) {
             sPaths[i].unk_14 = 5;
         }
 
@@ -1889,7 +1889,7 @@ void Map_801A01A8(void) {
 
     if (D_menu_801CD974 && D_menu_801CD944 != 0) {
         for (i = 0; i < 24; i++) {
-            if (D_ctx_80177BD8[i] == 0) {
+            if (gPlanetPathStatus[i] == 0) {
                 continue;
             }
             if (sPaths[i].alpha == 0) {
@@ -2698,7 +2698,7 @@ void Map_801A2674(void) {
     }
 
     for (i = 0; i < 24; i++) {
-        if (D_ctx_80177BD8[i] == 0) {
+        if (gPlanetPathStatus[i] == 0) {
             continue;
         }
 
@@ -2778,13 +2778,13 @@ void Map_801A281C(void) {
     D_menu_801CEEE8[7].y = D_menu_801CEEE8[6].y;
     D_menu_801CEEE8[7].z = D_menu_801CEEE8[6].z;
 
-    D_menu_801CEECC = Map_801A655C(sCurrentPlanetId, sNextPlanetId);
+    D_menu_801CEECC = Map_GetPathId(sCurrentPlanetId, sNextPlanetId);
 
     if (D_menu_801CD93C == 2) {
-        D_ctx_80177BD8[D_menu_801CEECC] = 5;
+        gPlanetPathStatus[D_menu_801CEECC] = 5;
         sPaths[D_menu_801CEECC].unk_14 = 5;
     } else {
-        D_ctx_80177BD8[D_menu_801CEECC] = 2;
+        gPlanetPathStatus[D_menu_801CEECC] = 2;
         sPaths[D_menu_801CEECC].unk_14 = 1;
     }
 }
@@ -2945,7 +2945,7 @@ void Map_801A2EB8(void) {
         }
 
         for (i = 0; i < 24; i++) {
-            if (D_ctx_80177BD8[i] == 0) {
+            if (gPlanetPathStatus[i] == 0) {
                 continue;
             }
             sPaths[i].alpha += 16;
@@ -2995,16 +2995,16 @@ void Map_801A2EB8(void) {
 
         D_menu_801CEED4 = -1;
         if (sPlanets[sNextPlanetId].dest1 != PLANET_NONE) {
-            temp1 = Map_801A655C(sNextPlanetId, sPlanets[sNextPlanetId].dest1);
-            D_ctx_80177BD8[temp1] = 1;
+            temp1 = Map_GetPathId(sNextPlanetId, sPlanets[sNextPlanetId].dest1);
+            gPlanetPathStatus[temp1] = 1;
             sPaths[temp1].alpha = 255;
             D_menu_801CEED4 = temp1;
         }
 
         D_menu_801CEED0 = -1;
         if (sPlanets[sNextPlanetId].dest2 != PLANET_NONE) {
-            temp2 = Map_801A655C(sNextPlanetId, sPlanets[sNextPlanetId].dest2);
-            D_ctx_80177BD8[temp2] = 1;
+            temp2 = Map_GetPathId(sNextPlanetId, sPlanets[sNextPlanetId].dest2);
+            gPlanetPathStatus[temp2] = 1;
             sPaths[temp2].alpha = 255;
             D_menu_801CEED0 = temp2;
         }
@@ -3352,10 +3352,10 @@ void Map_801A4394(void) {
 
             if ((sPaths[D_menu_801CD8E0[D_menu_801CD9AC]].type == 3) ||
                 (sPaths[D_menu_801CD8E0[D_menu_801CD9AC]].type == 4)) {
-                D_ctx_80177BD8[D_menu_801CD8E0[D_menu_801CD9AC]] = 5;
+                gPlanetPathStatus[D_menu_801CD8E0[D_menu_801CD9AC]] = 5;
                 sPaths[D_menu_801CD8E0[D_menu_801CD9AC]].unk_14 = 5;
             } else {
-                D_ctx_80177BD8[D_menu_801CD8E0[D_menu_801CD9AC]] = 2;
+                gPlanetPathStatus[D_menu_801CD8E0[D_menu_801CD9AC]] = 2;
                 sPaths[D_menu_801CD8E0[D_menu_801CD9AC]].unk_14 = 0;
             }
 
@@ -3366,8 +3366,8 @@ void Map_801A4394(void) {
             break;
 
         case 2:
-            if ((D_ctx_80177BD8[D_menu_801CD8E0[D_menu_801CD9AC]] == 3) ||
-                (D_ctx_80177BD8[D_menu_801CD8E0[D_menu_801CD9AC]] == 6)) {
+            if ((gPlanetPathStatus[D_menu_801CD8E0[D_menu_801CD9AC]] == 3) ||
+                (gPlanetPathStatus[D_menu_801CD8E0[D_menu_801CD9AC]] == 6)) {
                 D_menu_801CD9AC++;
                 D_menu_801CD94C = 1;
             }
@@ -3633,20 +3633,20 @@ void Map_801A4FC4(void) {
     gBombCount[gPlayerNum] = 3;
 
     if (sPlanets[sCurrentPlanetId].dest1 != PLANET_NONE) {
-        temp2 = Map_801A655C(sCurrentPlanetId, sPlanets[sCurrentPlanetId].dest1);
-        D_ctx_80177BD8[temp2] = 0;
+        temp2 = Map_GetPathId(sCurrentPlanetId, sPlanets[sCurrentPlanetId].dest1);
+        gPlanetPathStatus[temp2] = 0;
         sPaths[temp2].alpha = 0;
     }
 
     if (sPlanets[sCurrentPlanetId].dest2 != PLANET_NONE) {
-        temp = Map_801A655C(sCurrentPlanetId, sPlanets[sCurrentPlanetId].dest2);
-        D_ctx_80177BD8[temp] = 0;
+        temp = Map_GetPathId(sCurrentPlanetId, sPlanets[sCurrentPlanetId].dest2);
+        gPlanetPathStatus[temp] = 0;
         sPaths[temp].alpha = 0;
     }
 
     if (sPlanets[sCurrentPlanetId].warp != PLANET_NONE) {
-        temp = Map_801A655C(sCurrentPlanetId, sPlanets[sCurrentPlanetId].warp);
-        D_ctx_80177BD8[temp] = 0;
+        temp = Map_GetPathId(sCurrentPlanetId, sPlanets[sCurrentPlanetId].warp);
+        gPlanetPathStatus[temp] = 0;
         sPaths[temp].alpha = 0;
     }
 
@@ -3669,20 +3669,20 @@ void Map_801A4FC4(void) {
     sCurrentPlanetId = D_menu_801CD950;
 
     if (sPlanets[sCurrentPlanetId].dest1 != PLANET_NONE) {
-        temp2 = Map_801A655C(sCurrentPlanetId, sPlanets[sCurrentPlanetId].dest1);
-        D_ctx_80177BD8[temp2] = 1;
+        temp2 = Map_GetPathId(sCurrentPlanetId, sPlanets[sCurrentPlanetId].dest1);
+        gPlanetPathStatus[temp2] = 1;
         sPaths[temp2].alpha = 255;
     }
 
     if (sPlanets[sCurrentPlanetId].dest2 != PLANET_NONE) {
-        temp = Map_801A655C(sCurrentPlanetId, sPlanets[sCurrentPlanetId].dest2);
-        D_ctx_80177BD8[temp] = 1;
+        temp = Map_GetPathId(sCurrentPlanetId, sPlanets[sCurrentPlanetId].dest2);
+        gPlanetPathStatus[temp] = 1;
         sPaths[temp].alpha = 255;
     }
 
     if (sPlanets[sCurrentPlanetId].warp != PLANET_NONE) {
-        temp = Map_801A655C(sCurrentPlanetId, sPlanets[sCurrentPlanetId].warp);
-        D_ctx_80177BD8[temp] = 0;
+        temp = Map_GetPathId(sCurrentPlanetId, sPlanets[sCurrentPlanetId].warp);
+        gPlanetPathStatus[temp] = 0;
         sPaths[temp].alpha = 0;
     }
 
@@ -3696,18 +3696,18 @@ void Map_801A53C8(void) {
     D_menu_801CEFD8 ^= 1;
 
     if (sPlanets[sCurrentPlanetId].dest1 != PLANET_NONE) {
-        temp2 = Map_801A655C(sCurrentPlanetId, sPlanets[sCurrentPlanetId].dest1);
-        D_ctx_80177BD8[temp2] = 0;
+        temp2 = Map_GetPathId(sCurrentPlanetId, sPlanets[sCurrentPlanetId].dest1);
+        gPlanetPathStatus[temp2] = 0;
         sPaths[temp2].alpha = 0;
     }
 
     if (sPlanets[sCurrentPlanetId].dest2 != PLANET_NONE) {
-        temp = Map_801A655C(sCurrentPlanetId, sPlanets[sCurrentPlanetId].dest2);
-        D_ctx_80177BD8[temp] = 0;
+        temp = Map_GetPathId(sCurrentPlanetId, sPlanets[sCurrentPlanetId].dest2);
+        gPlanetPathStatus[temp] = 0;
         sPaths[temp].alpha = 0;
     }
 
-    D_ctx_80177BD8[D_menu_801CEECC] = 0;
+    gPlanetPathStatus[D_menu_801CEECC] = 0;
 
     sPaths[D_menu_801CEECC].alpha = 0;
     sPaths[D_menu_801CEECC].unk_14 = 0;
@@ -3728,16 +3728,16 @@ void Map_801A53C8(void) {
         sNextPlanetId = sPlanets[sCurrentPlanetId].dest1;
     }
 
-    D_menu_801CEECC = Map_801A655C(sCurrentPlanetId, sNextPlanetId);
+    D_menu_801CEECC = Map_GetPathId(sCurrentPlanetId, sNextPlanetId);
 
     sPaths[D_menu_801CEECC].alpha = 255;
 
-    D_ctx_80177BD8[D_menu_801CEECC] = 3;
+    gPlanetPathStatus[D_menu_801CEECC] = 3;
 
     sPaths[D_menu_801CEECC].unk_14 = 2;
 
     if ((sPaths[D_menu_801CEECC].type == PL_WARP_YLW) || (sPaths[D_menu_801CEECC].type == PL_WARP_RED)) {
-        D_ctx_80177BD8[D_menu_801CEECC] = 5;
+        gPlanetPathStatus[D_menu_801CEECC] = 5;
         sPaths[D_menu_801CEECC].unk_14 = 5;
     }
 
@@ -3752,14 +3752,14 @@ void Map_801A53C8(void) {
     Map_801A6368();
 
     if (sPlanets[sNextPlanetId].dest1 != PLANET_NONE) {
-        temp2 = Map_801A655C(sNextPlanetId, sPlanets[sNextPlanetId].dest1);
-        D_ctx_80177BD8[temp2] = 1;
+        temp2 = Map_GetPathId(sNextPlanetId, sPlanets[sNextPlanetId].dest1);
+        gPlanetPathStatus[temp2] = 1;
         sPaths[temp2].alpha = 255;
     }
 
     if (sPlanets[sNextPlanetId].dest2 != PLANET_NONE) {
-        temp = Map_801A655C(sNextPlanetId, sPlanets[sNextPlanetId].dest2);
-        D_ctx_80177BD8[temp] = 1;
+        temp = Map_GetPathId(sNextPlanetId, sPlanets[sNextPlanetId].dest2);
+        gPlanetPathStatus[temp] = 1;
         sPaths[temp].alpha = 255;
     }
 }
@@ -4012,59 +4012,59 @@ void Map_801A5E80(void) {
 void Map_801A61B4(LevelId level) {
     switch (level) {
         case LEVEL_CORNERIA:
-            Audio_SetAudioSpec(0, 0);
+            AUDIO_SET_SPEC(SFXCHAN_0, AUDIOSPEC_0);
             break;
 
         case LEVEL_METEO:
-            Audio_SetAudioSpec(0, 1);
+            AUDIO_SET_SPEC(SFXCHAN_0, AUDIOSPEC_1);
             break;
 
         case LEVEL_TITANIA:
-            Audio_SetAudioSpec(0, 2);
+            AUDIO_SET_SPEC(SFXCHAN_0, AUDIOSPEC_2);
             break;
 
         case LEVEL_AQUAS:
-            Audio_SetAudioSpec(0, 12);
+            AUDIO_SET_SPEC(SFXCHAN_0, AUDIOSPEC_12);
             break;
 
         case LEVEL_BOLSE:
-            Audio_SetAudioSpec(0, 10);
+            AUDIO_SET_SPEC(SFXCHAN_0, AUDIOSPEC_10);
             break;
 
         case LEVEL_KATINA:
-            Audio_SetAudioSpec(0, 11);
+            AUDIO_SET_SPEC(SFXCHAN_0, AUDIOSPEC_11);
             break;
 
         case LEVEL_AREA_6:
-            Audio_SetAudioSpec(0, 5);
+            AUDIO_SET_SPEC(SFXCHAN_0, AUDIOSPEC_5);
             break;
 
         case LEVEL_SECTOR_Z:
-            Audio_SetAudioSpec(0, 13);
+            AUDIO_SET_SPEC(SFXCHAN_0, AUDIOSPEC_13);
             break;
 
         case LEVEL_FORTUNA:
-            Audio_SetAudioSpec(0, 8);
+            AUDIO_SET_SPEC(SFXCHAN_0, AUDIOSPEC_8);
             break;
 
         case LEVEL_SECTOR_X:
-            Audio_SetAudioSpec(0, 3);
+            AUDIO_SET_SPEC(SFXCHAN_0, AUDIOSPEC_3);
             break;
 
         case LEVEL_MACBETH:
-            Audio_SetAudioSpec(0, 14);
+            AUDIO_SET_SPEC(SFXCHAN_0, AUDIOSPEC_14);
             break;
 
         case LEVEL_ZONESS:
-            Audio_SetAudioSpec(0, 4);
+            AUDIO_SET_SPEC(SFXCHAN_0, AUDIOSPEC_4);
             break;
 
         case LEVEL_SECTOR_Y:
-            Audio_SetAudioSpec(0, 7);
+            AUDIO_SET_SPEC(SFXCHAN_0, AUDIOSPEC_7);
             break;
 
         case LEVEL_SOLAR:
-            Audio_SetAudioSpec(0, 0x209);
+            AUDIO_SET_SPEC(SFXCHAN_2, AUDIOSPEC_9);
 
         default:
             break;
@@ -4245,7 +4245,7 @@ PlanetId Map_GetPlanetId(LevelId level) {
     return planet;
 }
 
-s32 Map_801A655C(PlanetId start, PlanetId end) {
+s32 Map_GetPathId(PlanetId start, PlanetId end) {
     s32 i;
 
     for (i = 0; i < 24; i++) {
@@ -5519,7 +5519,7 @@ void Map_801AA1CC(s32 arg0) {
         if (i < 6) {
             r = g = b = 255;
             if (i < arg0) {
-                temp = Map_801A655C(*ptr, *(ptr + 1));
+                temp = Map_GetPathId(*ptr, *(ptr + 1));
                 switch (sPaths[temp].type) {
                     case 0:
                         r = 16;
@@ -6358,10 +6358,10 @@ void Map_801AC9A0(s32 index) {
     gTexturedLines[index].unk_20 = Math_Atan2F(x, z);
     gTexturedLines[index].unk_1C = -Math_Atan2F(y, sqrtf(SQ(x) + SQ(z)));
 
-    switch (D_ctx_80177BD8[index]) {
+    switch (gPlanetPathStatus[index]) {
         case 1:
             AUDIO_PLAY_SFX(0x1900404D, gDefaultSfxSource, 4);
-            D_ctx_80177BD8[index] = 11;
+            gPlanetPathStatus[index] = 11;
             break;
 
         case 11:
@@ -6369,7 +6369,7 @@ void Map_801AC9A0(s32 index) {
             gTexturedLines[index].unk_2F = 255;
             if (gTexturedLines[index].unk_24 == target) {
                 Audio_KillSfxById(0x1900404D);
-                D_ctx_80177BD8[index] = 4;
+                gPlanetPathStatus[index] = 4;
             }
             break;
 
@@ -6378,7 +6378,7 @@ void Map_801AC9A0(s32 index) {
             Math_SmoothStepToF(&gTexturedLines[index].unk_24, target, 0.1f, 100.0f, 1.0f);
             if (gTexturedLines[index].unk_24 == target) {
                 gTexturedLines[index].unk_24 = 0.0f;
-                D_ctx_80177BD8[index] = 6;
+                gPlanetPathStatus[index] = 6;
                 D_menu_801CEEAC = 255;
             }
             break;
@@ -6391,7 +6391,7 @@ void Map_801AC9A0(s32 index) {
             Math_SmoothStepToF(&gTexturedLines[index].unk_24, target, temp, 100.0f, 4.0f);
             gTexturedLines[index].unk_2F = 255;
             if (gTexturedLines[index].unk_24 == target) {
-                D_ctx_80177BD8[index] = 3;
+                gPlanetPathStatus[index] = 3;
             }
             break;
 
@@ -6402,7 +6402,7 @@ void Map_801AC9A0(s32 index) {
             break;
     }
 
-    if ((D_ctx_80177BD8[index] == 1) || (D_ctx_80177BD8[index] == 11) || (D_ctx_80177BD8[index] == 4)) {
+    if ((gPlanetPathStatus[index] == 1) || (gPlanetPathStatus[index] == 11) || (gPlanetPathStatus[index] == 4)) {
         gTexturedLines[index].unk_2C = 32;
         gTexturedLines[index].unk_2D = 32;
         gTexturedLines[index].unk_2E = 32;
diff --git a/src/overlays/ovl_menu/fox_option.c b/src/overlays/ovl_menu/fox_option.c
index aeeff3fe..00e95496 100644
--- a/src/overlays/ovl_menu/fox_option.c
+++ b/src/overlays/ovl_menu/fox_option.c
@@ -558,7 +558,7 @@ void Option_Init(void) {
         case OPTION_WAIT:
             if (gNextGameStateTimer == 0) {
                 gOptionMenuStatus = OPTION_SETUP;
-                Audio_SetAudioSpec(0, 23);
+                AUDIO_SET_SPEC(SFXCHAN_0, AUDIOSPEC_23);
             }
             break;
 
@@ -806,7 +806,7 @@ void Option_TrainingUpdate(void) {
         D_ctx_80177CB0 = 0.0f;
         D_ctx_8017782C = 1;
         gControllerLock = 3;
-        Audio_SetAudioSpec(0, 28);
+        AUDIO_SET_SPEC(SFXCHAN_0, AUDIOSPEC_28);
     } else {
         gFillScreenAlpha += 32;
         if (gFillScreenAlpha > 255) {
diff --git a/src/overlays/ovl_menu/fox_title.c b/src/overlays/ovl_menu/fox_title.c
index 73c1f970..72ffe63b 100644
--- a/src/overlays/ovl_menu/fox_title.c
+++ b/src/overlays/ovl_menu/fox_title.c
@@ -205,11 +205,11 @@ void Title_801875E0(void) {
     Title_80188010();
 
     if ((gMainController == -1) || (D_menu_801B827C != 0)) {
-        Audio_SetAudioSpec(0, 0x17);
+        AUDIO_SET_SPEC(SFXCHAN_0, AUDIOSPEC_23);
         D_menu_801B82C4 = 0;
         D_menu_801B827C = 0;
     } else {
-        Audio_SetAudioSpec(0, 0x16);
+        AUDIO_SET_SPEC(SFXCHAN_0, AUDIOSPEC_22);
         D_menu_801B82C4 = 1;
     }
     gControllerLock = 30;
@@ -379,7 +379,7 @@ void Title_80187B00(void) {
                 gRadioState = 0;
                 D_menu_801B82C0 = 0;
                 gDrawMode = DRAW_NONE;
-                Audio_SetAudioSpec(0, 0x16);
+                AUDIO_SET_SPEC(SFXCHAN_0, AUDIOSPEC_22);
                 D_menu_801B82C4 = 1;
             }
 
@@ -2102,7 +2102,7 @@ void Title_8018C644(void) {
             D_menu_801B82C0 = 0;
             gDrawMode = DRAW_NONE;
             D_menu_801B82C4 = 0;
-            Audio_SetAudioSpec(0, 23);
+            AUDIO_SET_SPEC(SFXCHAN_0, AUDIOSPEC_23);
             break;
     }
 
@@ -3216,7 +3216,7 @@ void Title_80190EA4(void) {
             if (D_menu_801B8284 < 120) {
                 D_menu_801B8284 += 18;
             } else {
-                Audio_SetAudioSpec(0, 0x17);
+                AUDIO_SET_SPEC(SFXCHAN_0, AUDIOSPEC_23);
                 D_ctx_80178410 = 0;
                 gRadioState = 0;
                 D_menu_801B82C0 = 0;