diff --git a/src/hover.cpp b/src/hover.cpp
index 5bb1cd8..5ee5cd9 100644
--- a/src/hover.cpp
+++ b/src/hover.cpp
@@ -757,7 +757,7 @@ struct Sec_Hover_Fn {
           f32 xf = ROOT::Experimental::Internal::HalfToFloat(x);
           return push_str8_node_child(arena, prev, fmt, xf);
         });
-      // TODO
+      // XXX: these require piecing back "page-global" data and are currently unsupported.
       // case CT::kSplitIndex64:
       // case CT::kSplitIndex32:
       // case CT::kSplitReal64:
@@ -768,6 +768,7 @@ struct Sec_Hover_Fn {
       // case CT::kSplitUInt32:
       // case CT::kSplitInt16:
       // case CT::kSplitUInt16:
+      // XXX: these require sub-byte addressing and are currently unsupported.
       // case CT::kReal32Trunc:
       // case CT::kReal32Quant:
       // case CT::kBit:
@@ -1044,11 +1045,13 @@ struct Sec_Hover_Fn {
       } else {
         Page_Info_Node *pinfo = (Page_Info_Node *)section.info;
         b8 display_individual = !display_grouped;
-        if (display_individual && pinfo) {
-          assert(is_pow2(pinfo->bits_per_elem));
+        // TODO: currently we only support displaying elements whose size in bits on disk
+        // is a multiple of 8. We should lift this requirement to be able to display stuff like
+        // Real32Trunc, Real32Quant etc.
+        if (display_individual && pinfo && is_pow2(pinfo->bits_per_elem)) {
           u64 n_elems = std::abs(pinfo->n_elems);
           u64 field_len = pinfo->bits_per_elem / 8;
-          // align cur_field_off to the start of the element
+          // Align cur_field_off to the start of the element.
           u64 off_in_elems = off - cur_field_off;
           off_in_elems = (off_in_elems & ~(field_len - 1));
           u64 elem_idx = off_in_elems / field_len;