diff --git a/av1/common/blockd.h b/av1/common/blockd.h
index cdfb3c9..3e8bfcb 100644
--- a/av1/common/blockd.h
+++ b/av1/common/blockd.h
@@ -156,8 +156,6 @@
    modes for the Y blocks to the left and above us; for interframes, there
    is a single probability table. */
 
-typedef int8_t MV_REFERENCE_FRAME;
-
 typedef struct {
   // Number of base colors for Y (0) and UV (1)
   uint8_t palette_size[2];
diff --git a/av1/common/enums.h b/av1/common/enums.h
index db9303c..298ba88 100644
--- a/av1/common/enums.h
+++ b/av1/common/enums.h
@@ -63,14 +63,6 @@
 #define FRAME_OFFSET_BITS 5
 #define MAX_FRAME_DISTANCE ((1 << FRAME_OFFSET_BITS) - 1)
 
-#define REF_FRAMES_LOG2 3
-#define REF_FRAMES (1 << REF_FRAMES_LOG2)
-
-// REF_FRAMES for the cm->ref_frame_map array, 1 scratch frame for the new
-// frame in cm->new_fb_idx, INTER_REFS_PER_FRAME for scaled references on the
-// encoder in the cpi->scaled_ref_idx array.
-#define FRAME_BUFFERS (REF_FRAMES + 1 + INTER_REFS_PER_FRAME)
-
 // 4 frame filter levels: y plane vertical, y plane horizontal,
 // u plane, and v plane
 #define FRAME_LF_COUNT 4
@@ -547,27 +539,49 @@
 #define TXFM_PARTITION_CONTEXTS ((TX_SIZES - TX_8X8) * 6 - 3)
 typedef uint8_t TXFM_CONTEXT;
 
-#define NONE_FRAME -1
-#define INTRA_FRAME 0
-#define LAST_FRAME 1
-#define LAST2_FRAME 2
-#define LAST3_FRAME 3
-#define GOLDEN_FRAME 4
-#define BWDREF_FRAME 5
-#define ALTREF2_FRAME 6
-#define ALTREF_FRAME 7
-#define EXTREF_FRAME REF_FRAMES
-#define LAST_REF_FRAMES (LAST3_FRAME - LAST_FRAME + 1)
+// An enum for various types of reference frame types (and some derived values).
+typedef enum ATTRIBUTE_PACKED {
+  NONE_FRAME = -1,
+  INTRA_FRAME,
+  LAST_FRAME,
+  LAST2_FRAME,
+  LAST3_FRAME,
+  GOLDEN_FRAME,
+  BWDREF_FRAME,
+  ALTREF2_FRAME,
+  ALTREF_FRAME,
+  REF_FRAMES,
 
-#define INTER_REFS_PER_FRAME (ALTREF_FRAME - LAST_FRAME + 1)
+  // Extra/scratch reference frame. It may be:
+  // - used to update the ALTREF2_FRAME ref (see lshift_bwd_ref_frames()), or
+  // - updated from ALTREF2_FRAME ref (see rshift_bwd_ref_frames()).
+  EXTREF_FRAME = REF_FRAMES,
 
-#define FWD_REFS (GOLDEN_FRAME - LAST_FRAME + 1)
+  // Number of LAST* reference types.
+  LAST_REF_FRAMES = LAST3_FRAME - LAST_FRAME + 1,
+
+  // Number of inter (non-intra) reference types.
+  INTER_REFS_PER_FRAME = ALTREF_FRAME - LAST_FRAME + 1,
+
+  // Number of forward (aka past) reference types.
+  FWD_REFS = GOLDEN_FRAME - LAST_FRAME + 1,
+
+  // Number of backward (aka future) reference types.
+  BWD_REFS = ALTREF_FRAME - BWDREF_FRAME + 1,
+
+  SINGLE_REFS = FWD_REFS + BWD_REFS,
+} MV_REFERENCE_FRAME;
+
+#define REF_FRAMES_LOG2 3
+
+// REF_FRAMES for the cm->ref_frame_map array, 1 scratch frame for the new
+// frame in cm->new_fb_idx, INTER_REFS_PER_FRAME for scaled references on the
+// encoder in the cpi->scaled_ref_idx array.
+#define FRAME_BUFFERS (REF_FRAMES + 1 + INTER_REFS_PER_FRAME)
+
 #define FWD_RF_OFFSET(ref) (ref - LAST_FRAME)
-#define BWD_REFS (ALTREF_FRAME - BWDREF_FRAME + 1)
 #define BWD_RF_OFFSET(ref) (ref - BWDREF_FRAME)
 
-#define SINGLE_REFS (FWD_REFS + BWD_REFS)
-
 typedef enum ATTRIBUTE_PACKED {
   LAST_LAST2_FRAMES,      // { LAST_FRAME, LAST2_FRAME }
   LAST_LAST3_FRAMES,      // { LAST_FRAME, LAST3_FRAME }
diff --git a/av1/common/mvref_common.h b/av1/common/mvref_common.h
index 83f7a1a..bb37357 100644
--- a/av1/common/mvref_common.h
+++ b/av1/common/mvref_common.h
@@ -174,9 +174,9 @@
     rf[0] = ref_frame_map[ref_frame_type - REF_FRAMES][0];
     rf[1] = ref_frame_map[ref_frame_type - REF_FRAMES][1];
   } else {
-    rf[0] = ref_frame_type;
-    rf[1] = NONE_FRAME;
     assert(ref_frame_type > NONE_FRAME);
+    rf[0] = (MV_REFERENCE_FRAME)ref_frame_type;
+    rf[1] = NONE_FRAME;
   }
 }
 
diff --git a/av1/encoder/encoder.h b/av1/encoder/encoder.h
index 460293b..0438a6c 100644
--- a/av1/encoder/encoder.h
+++ b/av1/encoder/encoder.h
@@ -925,14 +925,15 @@
 }
 
 static INLINE int enc_is_ref_frame_buf(AV1_COMP *cpi, RefCntBuffer *frame_buf) {
-  MV_REFERENCE_FRAME ref_frame;
   AV1_COMMON *const cm = &cpi->common;
-  for (ref_frame = LAST_FRAME; ref_frame <= ALTREF_FRAME; ++ref_frame) {
+  int ref_num;
+  for (ref_num = LAST_FRAME; ref_num <= ALTREF_FRAME; ++ref_num) {
+    const MV_REFERENCE_FRAME ref_frame = (MV_REFERENCE_FRAME)ref_num;
     const int buf_idx = get_ref_frame_buf_idx(cpi, ref_frame);
     if (buf_idx == INVALID_IDX) continue;
     if (frame_buf == &cm->buffer_pool->frame_bufs[buf_idx]) break;
   }
-  return (ref_frame <= ALTREF_FRAME);
+  return (ref_num <= ALTREF_FRAME);
 }
 
 // Token buffer is only used for palette tokens.
