diff --git a/av1/common/entropy.c b/av1/common/entropy.c
index 1052307..c66c5f8 100644
--- a/av1/common/entropy.c
+++ b/av1/common/entropy.c
@@ -5677,7 +5677,13 @@
 #if CONFIG_VAR_TX
   AVERAGE_TILE_CDFS(txfm_partition_cdf)
 #endif
+#if CONFIG_PALETTE
+  AVERAGE_TILE_CDFS(palette_y_size_cdf);
+  AVERAGE_TILE_CDFS(palette_uv_size_cdf);
+  AVERAGE_TILE_CDFS(palette_y_color_index_cdf);
+  AVERAGE_TILE_CDFS(palette_uv_color_index_cdf);
 #endif
+#endif  // CONFIG_NEW_MULTISYMBOL
 }
 
 void av1_average_tile_inter_cdfs(AV1_COMMON *cm, FRAME_CONTEXT *fc,
diff --git a/av1/common/entropymode.c b/av1/common/entropymode.c
index 266bda2..f2c7979 100644
--- a/av1/common/entropymode.c
+++ b/av1/common/entropymode.c
@@ -1869,6 +1869,40 @@
 #endif  // CONFIG_EXT_PARTITION
     };
 
+#if CONFIG_NEW_MULTISYMBOL
+const aom_cdf_prob
+    default_palette_y_size_cdf[PALETTE_BLOCK_SIZES][CDF_SIZE(PALETTE_SIZES)] = {
+      { AOM_ICDF(12288), AOM_ICDF(19408), AOM_ICDF(24627), AOM_ICDF(26662),
+        AOM_ICDF(28499), AOM_ICDF(30667), AOM_ICDF(32768), 0 },
+      { AOM_ICDF(2815), AOM_ICDF(4570), AOM_ICDF(9416), AOM_ICDF(10875),
+        AOM_ICDF(13782), AOM_ICDF(19863), AOM_ICDF(32768), 0 },
+      { AOM_ICDF(3839), AOM_ICDF(5986), AOM_ICDF(11949), AOM_ICDF(13413),
+        AOM_ICDF(16286), AOM_ICDF(21823), AOM_ICDF(32768), 0 },
+      { AOM_ICDF(12032), AOM_ICDF(14948), AOM_ICDF(22187), AOM_ICDF(23138),
+        AOM_ICDF(24756), AOM_ICDF(27635), AOM_ICDF(32768), 0 },
+      { AOM_ICDF(14847), AOM_ICDF(20167), AOM_ICDF(25433), AOM_ICDF(26751),
+        AOM_ICDF(28278), AOM_ICDF(30119), AOM_ICDF(32768), 0 },
+      { AOM_ICDF(14336), AOM_ICDF(20240), AOM_ICDF(24840), AOM_ICDF(26079),
+        AOM_ICDF(27908), AOM_ICDF(30034), AOM_ICDF(32768), 0 },
+      { AOM_ICDF(18816), AOM_ICDF(25574), AOM_ICDF(29030), AOM_ICDF(29877),
+        AOM_ICDF(30656), AOM_ICDF(31506), AOM_ICDF(32768), 0 },
+      { AOM_ICDF(23039), AOM_ICDF(27333), AOM_ICDF(30220), AOM_ICDF(30708),
+        AOM_ICDF(31070), AOM_ICDF(31826), AOM_ICDF(32768), 0 },
+      { AOM_ICDF(13696), AOM_ICDF(18911), AOM_ICDF(23620), AOM_ICDF(25371),
+        AOM_ICDF(29821), AOM_ICDF(31617), AOM_ICDF(32768), 0 },
+      { AOM_ICDF(12543), AOM_ICDF(20838), AOM_ICDF(27455), AOM_ICDF(28762),
+        AOM_ICDF(29763), AOM_ICDF(31546), AOM_ICDF(32768), 0 },
+#if CONFIG_EXT_PARTITION
+      { AOM_ICDF(12543), AOM_ICDF(20838), AOM_ICDF(27455), AOM_ICDF(28762),
+        AOM_ICDF(29763), AOM_ICDF(31546), AOM_ICDF(32768), 0 },
+      { AOM_ICDF(12543), AOM_ICDF(20838), AOM_ICDF(27455), AOM_ICDF(28762),
+        AOM_ICDF(29763), AOM_ICDF(31546), AOM_ICDF(32768), 0 },
+      { AOM_ICDF(12543), AOM_ICDF(20838), AOM_ICDF(27455), AOM_ICDF(28762),
+        AOM_ICDF(29763), AOM_ICDF(31546), AOM_ICDF(32768), 0 },
+#endif
+    };
+#endif  // CONFIG_NEW_MULTISYMBOL
+
 const aom_prob
     av1_default_palette_uv_size_prob[PALETTE_BLOCK_SIZES][PALETTE_SIZES - 1] = {
       { 160, 196, 228, 213, 175, 230 }, { 87, 148, 208, 141, 166, 163 },
@@ -1882,6 +1916,40 @@
 #endif  // CONFIG_EXT_PARTITION
     };
 
+#if CONFIG_NEW_MULTISYMBOL
+const aom_cdf_prob default_palette_uv_size_cdf[PALETTE_BLOCK_SIZES][CDF_SIZE(
+    PALETTE_SIZES)] = {
+  { AOM_ICDF(20480), AOM_ICDF(29888), AOM_ICDF(32453), AOM_ICDF(32715),
+    AOM_ICDF(32751), AOM_ICDF(32766), AOM_ICDF(32768), 0 },
+  { AOM_ICDF(11135), AOM_ICDF(23641), AOM_ICDF(31056), AOM_ICDF(31998),
+    AOM_ICDF(32496), AOM_ICDF(32668), AOM_ICDF(32768), 0 },
+  { AOM_ICDF(9216), AOM_ICDF(23108), AOM_ICDF(30806), AOM_ICDF(31871),
+    AOM_ICDF(32414), AOM_ICDF(32637), AOM_ICDF(32768), 0 },
+  { AOM_ICDF(9984), AOM_ICDF(21999), AOM_ICDF(29192), AOM_ICDF(30645),
+    AOM_ICDF(31640), AOM_ICDF(32402), AOM_ICDF(32768), 0 },
+  { AOM_ICDF(7552), AOM_ICDF(16614), AOM_ICDF(24880), AOM_ICDF(27283),
+    AOM_ICDF(29254), AOM_ICDF(31203), AOM_ICDF(32768), 0 },
+  { AOM_ICDF(9600), AOM_ICDF(20279), AOM_ICDF(27548), AOM_ICDF(29261),
+    AOM_ICDF(30494), AOM_ICDF(31631), AOM_ICDF(32768), 0 },
+  { AOM_ICDF(11391), AOM_ICDF(18656), AOM_ICDF(23727), AOM_ICDF(26058),
+    AOM_ICDF(27788), AOM_ICDF(30278), AOM_ICDF(32768), 0 },
+  { AOM_ICDF(8576), AOM_ICDF(13585), AOM_ICDF(17632), AOM_ICDF(20884),
+    AOM_ICDF(23948), AOM_ICDF(27152), AOM_ICDF(32768), 0 },
+  { AOM_ICDF(15360), AOM_ICDF(24200), AOM_ICDF(26978), AOM_ICDF(30846),
+    AOM_ICDF(31409), AOM_ICDF(32545), AOM_ICDF(32768), 0 },
+  { AOM_ICDF(9216), AOM_ICDF(14276), AOM_ICDF(19043), AOM_ICDF(22689),
+    AOM_ICDF(25799), AOM_ICDF(28712), AOM_ICDF(32768), 0 },
+#if CONFIG_EXT_PARTITION
+  { AOM_ICDF(9216), AOM_ICDF(14276), AOM_ICDF(19043), AOM_ICDF(22689),
+    AOM_ICDF(25799), AOM_ICDF(28712), AOM_ICDF(32768), 0 },
+  { AOM_ICDF(9216), AOM_ICDF(14276), AOM_ICDF(19043), AOM_ICDF(22689),
+    AOM_ICDF(25799), AOM_ICDF(28712), AOM_ICDF(32768), 0 },
+  { AOM_ICDF(9216), AOM_ICDF(14276), AOM_ICDF(19043), AOM_ICDF(22689),
+    AOM_ICDF(25799), AOM_ICDF(28712), AOM_ICDF(32768), 0 },
+#endif
+};
+#endif  // CONFIG_NEW_MULTISYMBOL
+
 // When palette mode is enabled, following probability tables indicate the
 // probabilities to code the "is_palette" bit (i.e. the bit that indicates
 // if this block uses palette mode or DC_PRED mode).
@@ -2000,6 +2068,96 @@
       },
     };
 
+#if CONFIG_NEW_MULTISYMBOL
+const aom_cdf_prob default_palette_y_color_index_cdf
+    [PALETTE_SIZES][PALETTE_COLOR_INDEX_CONTEXTS][CDF_SIZE(PALETTE_COLORS)] = {
+      {
+          { AOM_ICDF(29568), AOM_ICDF(32768), 0, 0, 0, 0, 0, 0, 0 },
+          { AOM_ICDF(16384), AOM_ICDF(32768), 0, 0, 0, 0, 0, 0, 0 },
+          { AOM_ICDF(8832), AOM_ICDF(32768), 0, 0, 0, 0, 0, 0, 0 },
+          { AOM_ICDF(28672), AOM_ICDF(32768), 0, 0, 0, 0, 0, 0, 0 },
+          { AOM_ICDF(31872), AOM_ICDF(32768), 0, 0, 0, 0, 0, 0, 0 },
+      },
+      {
+          { AOM_ICDF(28032), AOM_ICDF(30326), AOM_ICDF(32768), 0, 0, 0, 0, 0,
+            0 },
+          { AOM_ICDF(11647), AOM_ICDF(27405), AOM_ICDF(32768), 0, 0, 0, 0, 0,
+            0 },
+          { AOM_ICDF(4352), AOM_ICDF(30659), AOM_ICDF(32768), 0, 0, 0, 0, 0,
+            0 },
+          { AOM_ICDF(23552), AOM_ICDF(27800), AOM_ICDF(32768), 0, 0, 0, 0, 0,
+            0 },
+          { AOM_ICDF(32256), AOM_ICDF(32504), AOM_ICDF(32768), 0, 0, 0, 0, 0,
+            0 },
+      },
+      {
+          { AOM_ICDF(26112), AOM_ICDF(28374), AOM_ICDF(30039), AOM_ICDF(32768),
+            0, 0, 0, 0, 0 },
+          { AOM_ICDF(9472), AOM_ICDF(22576), AOM_ICDF(27712), AOM_ICDF(32768),
+            0, 0, 0, 0, 0 },
+          { AOM_ICDF(6656), AOM_ICDF(26138), AOM_ICDF(29608), AOM_ICDF(32768),
+            0, 0, 0, 0, 0 },
+          { AOM_ICDF(19328), AOM_ICDF(23791), AOM_ICDF(28946), AOM_ICDF(32768),
+            0, 0, 0, 0, 0 },
+          { AOM_ICDF(31744), AOM_ICDF(31984), AOM_ICDF(32336), AOM_ICDF(32768),
+            0, 0, 0, 0, 0 },
+      },
+      {
+          { AOM_ICDF(27904), AOM_ICDF(29215), AOM_ICDF(30075), AOM_ICDF(31190),
+            AOM_ICDF(32768), 0, 0, 0, 0 },
+          { AOM_ICDF(9728), AOM_ICDF(22598), AOM_ICDF(26134), AOM_ICDF(29425),
+            AOM_ICDF(32768), 0, 0, 0, 0 },
+          { AOM_ICDF(2688), AOM_ICDF(30066), AOM_ICDF(31058), AOM_ICDF(31933),
+            AOM_ICDF(32768), 0, 0, 0, 0 },
+          { AOM_ICDF(22015), AOM_ICDF(25039), AOM_ICDF(27726), AOM_ICDF(29932),
+            AOM_ICDF(32768), 0, 0, 0, 0 },
+          { AOM_ICDF(32383), AOM_ICDF(32482), AOM_ICDF(32554), AOM_ICDF(32660),
+            AOM_ICDF(32768), 0, 0, 0, 0 },
+      },
+      {
+          { AOM_ICDF(24319), AOM_ICDF(26299), AOM_ICDF(27486), AOM_ICDF(28600),
+            AOM_ICDF(29804), AOM_ICDF(32768), 0, 0, 0 },
+          { AOM_ICDF(7935), AOM_ICDF(18217), AOM_ICDF(21116), AOM_ICDF(25440),
+            AOM_ICDF(28589), AOM_ICDF(32768), 0, 0, 0 },
+          { AOM_ICDF(6656), AOM_ICDF(25016), AOM_ICDF(27105), AOM_ICDF(28698),
+            AOM_ICDF(30399), AOM_ICDF(32768), 0, 0, 0 },
+          { AOM_ICDF(19967), AOM_ICDF(24117), AOM_ICDF(26550), AOM_ICDF(28566),
+            AOM_ICDF(30224), AOM_ICDF(32768), 0, 0, 0 },
+          { AOM_ICDF(31359), AOM_ICDF(31607), AOM_ICDF(31775), AOM_ICDF(31977),
+            AOM_ICDF(32258), AOM_ICDF(32768), 0, 0, 0 },
+      },
+      {
+          { AOM_ICDF(26368), AOM_ICDF(27768), AOM_ICDF(28588), AOM_ICDF(29274),
+            AOM_ICDF(29997), AOM_ICDF(30917), AOM_ICDF(32768), 0, 0 },
+          { AOM_ICDF(8960), AOM_ICDF(18260), AOM_ICDF(20810), AOM_ICDF(23986),
+            AOM_ICDF(26627), AOM_ICDF(28882), AOM_ICDF(32768), 0, 0 },
+          { AOM_ICDF(7295), AOM_ICDF(24111), AOM_ICDF(25836), AOM_ICDF(27515),
+            AOM_ICDF(29033), AOM_ICDF(30769), AOM_ICDF(32768), 0, 0 },
+          { AOM_ICDF(22016), AOM_ICDF(25208), AOM_ICDF(27305), AOM_ICDF(28159),
+            AOM_ICDF(29221), AOM_ICDF(30274), AOM_ICDF(32768), 0, 0 },
+          { AOM_ICDF(31744), AOM_ICDF(31932), AOM_ICDF(32050), AOM_ICDF(32199),
+            AOM_ICDF(32335), AOM_ICDF(32521), AOM_ICDF(32768), 0, 0 },
+      },
+      {
+          { AOM_ICDF(26624), AOM_ICDF(27872), AOM_ICDF(28599), AOM_ICDF(29153),
+            AOM_ICDF(29633), AOM_ICDF(30172), AOM_ICDF(30841), AOM_ICDF(32768),
+            0 },
+          { AOM_ICDF(6655), AOM_ICDF(17569), AOM_ICDF(19587), AOM_ICDF(23345),
+            AOM_ICDF(25884), AOM_ICDF(28088), AOM_ICDF(29678), AOM_ICDF(32768),
+            0 },
+          { AOM_ICDF(3584), AOM_ICDF(27296), AOM_ICDF(28429), AOM_ICDF(29158),
+            AOM_ICDF(30032), AOM_ICDF(30780), AOM_ICDF(31572), AOM_ICDF(32768),
+            0 },
+          { AOM_ICDF(23551), AOM_ICDF(25855), AOM_ICDF(27070), AOM_ICDF(27893),
+            AOM_ICDF(28597), AOM_ICDF(29721), AOM_ICDF(30970), AOM_ICDF(32768),
+            0 },
+          { AOM_ICDF(32128), AOM_ICDF(32173), AOM_ICDF(32245), AOM_ICDF(32337),
+            AOM_ICDF(32416), AOM_ICDF(32500), AOM_ICDF(32609), AOM_ICDF(32768),
+            0 },
+      },
+    };
+#endif
+
 const aom_prob av1_default_palette_uv_color_index_prob
     [PALETTE_SIZES][PALETTE_COLOR_INDEX_CONTEXTS][PALETTE_COLORS - 1] = {
       {
@@ -2070,6 +2228,95 @@
       },
     };
 
+#if CONFIG_NEW_MULTISYMBOL
+const aom_cdf_prob default_palette_uv_color_index_cdf
+    [PALETTE_SIZES][PALETTE_COLOR_INDEX_CONTEXTS][CDF_SIZE(PALETTE_COLORS)] = {
+      {
+          { AOM_ICDF(29824), AOM_ICDF(32768), 0, 0, 0, 0, 0, 0, 0 },
+          { AOM_ICDF(16384), AOM_ICDF(32768), 0, 0, 0, 0, 0, 0, 0 },
+          { AOM_ICDF(8832), AOM_ICDF(32768), 0, 0, 0, 0, 0, 0, 0 },
+          { AOM_ICDF(30720), AOM_ICDF(32768), 0, 0, 0, 0, 0, 0, 0 },
+          { AOM_ICDF(31744), AOM_ICDF(32768), 0, 0, 0, 0, 0, 0, 0 },
+      },
+      {
+          { AOM_ICDF(27648), AOM_ICDF(30208), AOM_ICDF(32768), 0, 0, 0, 0, 0,
+            0 },
+          { AOM_ICDF(14080), AOM_ICDF(26563), AOM_ICDF(32768), 0, 0, 0, 0, 0,
+            0 },
+          { AOM_ICDF(5120), AOM_ICDF(30932), AOM_ICDF(32768), 0, 0, 0, 0, 0,
+            0 },
+          { AOM_ICDF(24448), AOM_ICDF(27828), AOM_ICDF(32768), 0, 0, 0, 0, 0,
+            0 },
+          { AOM_ICDF(31616), AOM_ICDF(32219), AOM_ICDF(32768), 0, 0, 0, 0, 0,
+            0 },
+      },
+      {
+          { AOM_ICDF(25856), AOM_ICDF(28259), AOM_ICDF(30584), AOM_ICDF(32768),
+            0, 0, 0, 0, 0 },
+          { AOM_ICDF(11520), AOM_ICDF(22476), AOM_ICDF(27944), AOM_ICDF(32768),
+            0, 0, 0, 0, 0 },
+          { AOM_ICDF(8064), AOM_ICDF(26882), AOM_ICDF(30308), AOM_ICDF(32768),
+            0, 0, 0, 0, 0 },
+          { AOM_ICDF(19455), AOM_ICDF(23823), AOM_ICDF(29134), AOM_ICDF(32768),
+            0, 0, 0, 0, 0 },
+          { AOM_ICDF(30848), AOM_ICDF(31501), AOM_ICDF(32174), AOM_ICDF(32768),
+            0, 0, 0, 0, 0 },
+      },
+      {
+          { AOM_ICDF(26751), AOM_ICDF(28020), AOM_ICDF(29541), AOM_ICDF(31230),
+            AOM_ICDF(32768), 0, 0, 0, 0 },
+          { AOM_ICDF(12032), AOM_ICDF(26045), AOM_ICDF(30772), AOM_ICDF(31497),
+            AOM_ICDF(32768), 0, 0, 0, 0 },
+          { AOM_ICDF(1280), AOM_ICDF(32153), AOM_ICDF(32458), AOM_ICDF(32560),
+            AOM_ICDF(32768), 0, 0, 0, 0 },
+          { AOM_ICDF(23424), AOM_ICDF(24154), AOM_ICDF(29201), AOM_ICDF(29856),
+            AOM_ICDF(32768), 0, 0, 0, 0 },
+          { AOM_ICDF(32256), AOM_ICDF(32402), AOM_ICDF(32561), AOM_ICDF(32682),
+            AOM_ICDF(32768), 0, 0, 0, 0 },
+      },
+      {
+          { AOM_ICDF(24576), AOM_ICDF(26720), AOM_ICDF(28114), AOM_ICDF(28950),
+            AOM_ICDF(31694), AOM_ICDF(32768), 0, 0, 0 },
+          { AOM_ICDF(7551), AOM_ICDF(16613), AOM_ICDF(20462), AOM_ICDF(25269),
+            AOM_ICDF(29077), AOM_ICDF(32768), 0, 0, 0 },
+          { AOM_ICDF(6272), AOM_ICDF(23039), AOM_ICDF(25623), AOM_ICDF(28163),
+            AOM_ICDF(30861), AOM_ICDF(32768), 0, 0, 0 },
+          { AOM_ICDF(17024), AOM_ICDF(18808), AOM_ICDF(20771), AOM_ICDF(27941),
+            AOM_ICDF(29845), AOM_ICDF(32768), 0, 0, 0 },
+          { AOM_ICDF(31616), AOM_ICDF(31936), AOM_ICDF(32079), AOM_ICDF(32321),
+            AOM_ICDF(32546), AOM_ICDF(32768), 0, 0, 0 },
+      },
+      {
+          { AOM_ICDF(23296), AOM_ICDF(25590), AOM_ICDF(27833), AOM_ICDF(29337),
+            AOM_ICDF(29954), AOM_ICDF(31229), AOM_ICDF(32768), 0, 0 },
+          { AOM_ICDF(7552), AOM_ICDF(13659), AOM_ICDF(16570), AOM_ICDF(21695),
+            AOM_ICDF(24506), AOM_ICDF(27701), AOM_ICDF(32768), 0, 0 },
+          { AOM_ICDF(6911), AOM_ICDF(24788), AOM_ICDF(26284), AOM_ICDF(27753),
+            AOM_ICDF(29575), AOM_ICDF(30872), AOM_ICDF(32768), 0, 0 },
+          { AOM_ICDF(17535), AOM_ICDF(22236), AOM_ICDF(24457), AOM_ICDF(26242),
+            AOM_ICDF(27363), AOM_ICDF(30191), AOM_ICDF(32768), 0, 0 },
+          { AOM_ICDF(30592), AOM_ICDF(31289), AOM_ICDF(31745), AOM_ICDF(31921),
+            AOM_ICDF(32149), AOM_ICDF(32321), AOM_ICDF(32768), 0, 0 },
+      },
+      {
+          { AOM_ICDF(22016), AOM_ICDF(24242), AOM_ICDF(25141), AOM_ICDF(27137),
+            AOM_ICDF(27797), AOM_ICDF(29331), AOM_ICDF(30848), AOM_ICDF(32768),
+            0 },
+          { AOM_ICDF(8063), AOM_ICDF(13564), AOM_ICDF(16940), AOM_ICDF(21948),
+            AOM_ICDF(24568), AOM_ICDF(25689), AOM_ICDF(26989), AOM_ICDF(32768),
+            0 },
+          { AOM_ICDF(6528), AOM_ICDF(27028), AOM_ICDF(27835), AOM_ICDF(28741),
+            AOM_ICDF(30031), AOM_ICDF(31795), AOM_ICDF(32285), AOM_ICDF(32768),
+            0 },
+          { AOM_ICDF(18047), AOM_ICDF(23797), AOM_ICDF(25444), AOM_ICDF(26274),
+            AOM_ICDF(27111), AOM_ICDF(27929), AOM_ICDF(30367), AOM_ICDF(32768),
+            0 },
+          { AOM_ICDF(30208), AOM_ICDF(30628), AOM_ICDF(31046), AOM_ICDF(31658),
+            AOM_ICDF(31762), AOM_ICDF(32367), AOM_ICDF(32469), AOM_ICDF(32768),
+            0 },
+      }
+    };
+#endif  // CONFIG_NEW_MULTISYMBOL
 #undef UNUSED_PROB
 
 #define MAX_COLOR_CONTEXT_HASH 8
@@ -4961,7 +5208,13 @@
   av1_copy(fc->comp_inter_prob, default_comp_inter_p);
 #if CONFIG_NEW_MULTISYMBOL
   av1_copy(fc->comp_inter_cdf, default_comp_inter_cdf);
+#if CONFIG_PALETTE
+  av1_copy(fc->palette_y_size_cdf, default_palette_y_size_cdf);
+  av1_copy(fc->palette_uv_size_cdf, default_palette_uv_size_cdf);
+  av1_copy(fc->palette_y_color_index_cdf, default_palette_y_color_index_cdf);
+  av1_copy(fc->palette_uv_color_index_cdf, default_palette_uv_color_index_cdf);
 #endif
+#endif  // CONFIG_NEW_MULTISYMBOL
 #if CONFIG_EXT_COMP_REFS
   av1_copy(fc->comp_ref_type_prob, default_comp_ref_type_p);
   av1_copy(fc->uni_comp_ref_prob, default_uni_comp_ref_p);
diff --git a/av1/common/entropymode.h b/av1/common/entropymode.h
index a1451c7..d2d7942 100644
--- a/av1/common/entropymode.h
+++ b/av1/common/entropymode.h
@@ -239,6 +239,17 @@
   aom_prob intra_inter_prob[INTRA_INTER_CONTEXTS];
   aom_prob comp_inter_prob[COMP_INTER_CONTEXTS];
 #if CONFIG_NEW_MULTISYMBOL
+#if CONFIG_PALETTE
+  aom_cdf_prob palette_y_size_cdf[PALETTE_BLOCK_SIZES][CDF_SIZE(PALETTE_SIZES)];
+  aom_cdf_prob palette_uv_size_cdf[PALETTE_BLOCK_SIZES]
+                                  [CDF_SIZE(PALETTE_SIZES)];
+  aom_cdf_prob palette_y_color_index_cdf[PALETTE_SIZES]
+                                        [PALETTE_COLOR_INDEX_CONTEXTS]
+                                        [CDF_SIZE(PALETTE_COLORS)];
+  aom_cdf_prob palette_uv_color_index_cdf[PALETTE_SIZES]
+                                         [PALETTE_COLOR_INDEX_CONTEXTS]
+                                         [CDF_SIZE(PALETTE_COLORS)];
+#endif
   aom_cdf_prob comp_inter_cdf[COMP_INTER_CONTEXTS][CDF_SIZE(2)];
   aom_cdf_prob single_ref_cdf[REF_CONTEXTS][SINGLE_REFS - 1][CDF_SIZE(2)];
 #endif
diff --git a/av1/decoder/decodemv.c b/av1/decoder/decodemv.c
index 9f42d06..b2b93e6 100644
--- a/av1/decoder/decodemv.c
+++ b/av1/decoder/decodemv.c
@@ -825,10 +825,17 @@
                                                    [palette_y_mode_ctx],
                  ACCT_STR)) {
       pmi->palette_size[0] =
+#if CONFIG_NEW_MULTISYMBOL
+          aom_read_symbol(r,
+                          xd->tile_ctx->palette_y_size_cdf[bsize - BLOCK_8X8],
+                          PALETTE_SIZES, ACCT_STR) +
+          2;
+#else
           aom_read_tree(r, av1_palette_size_tree,
                         av1_default_palette_y_size_prob[bsize - BLOCK_8X8],
                         ACCT_STR) +
           2;
+#endif
       n = pmi->palette_size[0];
 #if CONFIG_PALETTE_DELTA_ENCODING
       read_palette_colors_y(xd, cm->bit_depth, pmi, r);
@@ -847,10 +854,17 @@
     if (aom_read(r, av1_default_palette_uv_mode_prob[palette_uv_mode_ctx],
                  ACCT_STR)) {
       pmi->palette_size[1] =
+#if CONFIG_NEW_MULTISYMBOL
+          aom_read_symbol(r,
+                          xd->tile_ctx->palette_uv_size_cdf[bsize - BLOCK_8X8],
+                          PALETTE_SIZES, ACCT_STR) +
+          2;
+#else
           aom_read_tree(r, av1_palette_size_tree,
                         av1_default_palette_uv_size_prob[bsize - BLOCK_8X8],
                         ACCT_STR) +
           2;
+#endif
       n = pmi->palette_size[1];
 #if CONFIG_PALETTE_DELTA_ENCODING
       read_palette_colors_uv(xd, cm->bit_depth, pmi, r);
diff --git a/av1/decoder/detokenize.c b/av1/decoder/detokenize.c
index 3207806..d2d7894 100644
--- a/av1/decoder/detokenize.c
+++ b/av1/decoder/detokenize.c
@@ -260,10 +260,18 @@
   const int n = mbmi->palette_mode_info.palette_size[plane];
   int i, j;
   uint8_t *const color_map = xd->plane[plane].color_index_map;
+#if CONFIG_NEW_MULTISYMBOL
+  aom_cdf_prob(
+      *palette_cdf)[PALETTE_COLOR_INDEX_CONTEXTS][CDF_SIZE(PALETTE_COLORS)] =
+      plane ? xd->tile_ctx->palette_uv_color_index_cdf
+            : xd->tile_ctx->palette_y_color_index_cdf;
+
+#else
   const aom_prob(
       *const prob)[PALETTE_COLOR_INDEX_CONTEXTS][PALETTE_COLORS - 1] =
       plane ? av1_default_palette_uv_color_index_prob
             : av1_default_palette_y_color_index_prob;
+#endif
   int plane_block_width, plane_block_height, rows, cols;
   av1_get_block_dimensions(mbmi->sb_type, plane, xd, &plane_block_width,
                            &plane_block_height, &rows, &cols);
@@ -275,9 +283,14 @@
     for (j = AOMMIN(i, cols - 1); j >= AOMMAX(0, i - rows + 1); --j) {
       const int color_ctx = av1_get_palette_color_index_context(
           color_map, plane_block_width, (i - j), j, n, color_order, NULL);
+#if CONFIG_NEW_MULTISYMBOL
+      const int color_idx = aom_read_symbol(
+          r, palette_cdf[n - PALETTE_MIN_SIZE][color_ctx], n, ACCT_STR);
+#else
       const int color_idx =
           aom_read_tree(r, av1_palette_color_index_tree[n - 2],
                         prob[n - 2][color_ctx], ACCT_STR);
+#endif
       assert(color_idx >= 0 && color_idx < n);
       color_map[(i - j) * plane_block_width + j] = color_order[color_idx];
     }
@@ -295,9 +308,14 @@
     for (j = (i == 0 ? 1 : 0); j < cols; ++j) {
       const int color_ctx = av1_get_palette_color_index_context(
           color_map, plane_block_width, i, j, n, color_order, NULL);
+#if CONFIG_NEW_MULTISYMBOL
+      const int color_idx = aom_read_symbol(
+          r, palette_cdf[n - PALETTE_MIN_SIZE][color_ctx], n, ACCT_STR);
+#else
       const int color_idx =
           aom_read_tree(r, av1_palette_color_index_tree[n - PALETTE_MIN_SIZE],
                         prob[n - PALETTE_MIN_SIZE][color_ctx], ACCT_STR);
+#endif
       assert(color_idx >= 0 && color_idx < n);
       color_map[i * plane_block_width + j] = color_order[color_idx];
     }
diff --git a/av1/encoder/bitstream.c b/av1/encoder/bitstream.c
index 6e30597..112e6d6 100644
--- a/av1/encoder/bitstream.c
+++ b/av1/encoder/bitstream.c
@@ -927,9 +927,13 @@
   const TOKENEXTRA *p = *tp;
 
   for (i = 0; i < num; ++i) {
+#if CONFIG_NEW_MULTISYMBOL
+    aom_write_symbol(w, p->token, p->palette_cdf, n);
+#else
     av1_write_token(
         w, av1_palette_color_index_tree[n - PALETTE_MIN_SIZE], p->context_tree,
         &palette_color_index_encodings[n - PALETTE_MIN_SIZE][p->token]);
+#endif
     ++p;
   }
 
@@ -1739,9 +1743,15 @@
         w, n > 0,
         av1_default_palette_y_mode_prob[bsize - BLOCK_8X8][palette_y_mode_ctx]);
     if (n > 0) {
+#if CONFIG_NEW_MULTISYMBOL
+      aom_write_symbol(w, n - PALETTE_MIN_SIZE,
+                       xd->tile_ctx->palette_y_size_cdf[bsize - BLOCK_8X8],
+                       PALETTE_SIZES);
+#else
       av1_write_token(w, av1_palette_size_tree,
                       av1_default_palette_y_size_prob[bsize - BLOCK_8X8],
                       &palette_size_encodings[n - PALETTE_MIN_SIZE]);
+#endif
 #if CONFIG_PALETTE_DELTA_ENCODING
       write_palette_colors_y(xd, pmi, cm->bit_depth, w);
 #else
@@ -1759,9 +1769,15 @@
     const int palette_uv_mode_ctx = (pmi->palette_size[0] > 0);
     aom_write(w, n > 0, av1_default_palette_uv_mode_prob[palette_uv_mode_ctx]);
     if (n > 0) {
+#if CONFIG_NEW_MULTISYMBOL
+      aom_write_symbol(w, n - PALETTE_MIN_SIZE,
+                       xd->tile_ctx->palette_uv_size_cdf[bsize - BLOCK_8X8],
+                       PALETTE_SIZES);
+#else
       av1_write_token(w, av1_palette_size_tree,
                       av1_default_palette_uv_size_prob[bsize - BLOCK_8X8],
                       &palette_size_encodings[n - PALETTE_MIN_SIZE]);
+#endif
 #if CONFIG_PALETTE_DELTA_ENCODING
       write_palette_colors_uv(xd, pmi, cm->bit_depth, w);
 #else
diff --git a/av1/encoder/tokenize.c b/av1/encoder/tokenize.c
index ef72cb4..3df9b6a 100644
--- a/av1/encoder/tokenize.c
+++ b/av1/encoder/tokenize.c
@@ -331,10 +331,18 @@
   int i, j;
   int this_rate = 0;
   uint8_t color_order[PALETTE_MAX_SIZE];
+#if CONFIG_NEW_MULTISYMBOL
+  aom_cdf_prob(
+      *palette_cdf)[PALETTE_COLOR_INDEX_CONTEXTS][CDF_SIZE(PALETTE_COLORS)] =
+      plane ? xd->tile_ctx->palette_uv_color_index_cdf
+            : xd->tile_ctx->palette_y_color_index_cdf;
+
+#else
   const aom_prob(
       *const probs)[PALETTE_COLOR_INDEX_CONTEXTS][PALETTE_COLORS - 1] =
       plane == 0 ? av1_default_palette_y_color_index_prob
                  : av1_default_palette_uv_color_index_prob;
+#endif
   int plane_block_width, rows, cols;
   av1_get_block_dimensions(bsize, plane, xd, &plane_block_width, NULL, &rows,
                            &cols);
@@ -357,7 +365,11 @@
         this_rate += cpi->palette_y_color_cost[n - PALETTE_MIN_SIZE][color_ctx]
                                               [color_new_idx];
       (*t)->token = color_new_idx;
+#if CONFIG_NEW_MULTISYMBOL
+      (*t)->palette_cdf = palette_cdf[n - PALETTE_MIN_SIZE][color_ctx];
+#else
       (*t)->context_tree = probs[n - PALETTE_MIN_SIZE][color_ctx];
+#endif
       (*t)->skip_eob_node = 0;
       ++(*t);
     }
diff --git a/av1/encoder/tokenize.h b/av1/encoder/tokenize.h
index cbfa3cd..b0115e7 100644
--- a/av1/encoder/tokenize.h
+++ b/av1/encoder/tokenize.h
@@ -37,6 +37,9 @@
 typedef struct {
   aom_cdf_prob (*tail_cdf)[CDF_SIZE(ENTROPY_TOKENS)];
   aom_cdf_prob (*head_cdf)[CDF_SIZE(ENTROPY_TOKENS)];
+#if CONFIG_NEW_MULTISYMBOL && CONFIG_PALETTE
+  aom_cdf_prob *palette_cdf;
+#endif
   int eob_val;
   int first_val;
   const aom_prob *context_tree;
