diff --git a/tests/42-real-life-OK.asn1.-PR b/tests/42-real-life-OK.asn1.-PR
index 891c0d1..5d0ef29 100644
--- a/tests/42-real-life-OK.asn1.-PR
+++ b/tests/42-real-life-OK.asn1.-PR
@@ -667,25 +667,21 @@
 
 /*** <<< STAT-DEFS [ActionItem] >>> ***/
 
-static asn_INTEGER_enum_map_t asn_MAP_accept_as_enum2value[] = {
-	{ "safe",	1 },
-	{ "unknown",	0 },
-	{ "unsafe",	2 }
+static asn_INTEGER_enum_map_t asn_MAP_accept_as_value2enum[] = {
+	{ 0,	7,	"unknown" },
+	{ 1,	4,	"safe" },
+	{ 2,	6,	"unsafe" }
 	/* This list is extensible */
 };
-static asn_INTEGER_enum_map_t asn_MAP_accept_as_value2enum[] = {
-	{ "unknown",	0 },
-	{ "safe",	1 },
-	{ "unsafe",	2 }
+static unsigned int asn_MAP_accept_as_enum2value[] = {
+	1,	/* safe(1) */
+	0,	/* unknown(0) */
+	2	/* unsafe(2) */
 	/* This list is extensible */
 };
 static asn_INTEGER_specifics_t asn_DEF_accept_as_specs = {
-	/* Two name<->value maps sorted differently;
-	 * this may seem like a waste of space,
-	 * but the strings actually share it.
-	 */
-	asn_MAP_accept_as_enum2value,	/* "tag" => N; sorted by tag */
-	asn_MAP_accept_as_value2enum,	/* N => "tag"; sorted by N */
+	asn_MAP_accept_as_value2enum,	/* "tag" => N; sorted by tag */
+	asn_MAP_accept_as_enum2value,	/* N => "tag"; sorted by N */
 	3,	/* Number of elements in the maps */
 	1	/* Enumeration is extensible */
 };
diff --git a/tests/66-ref-simple-OK.asn1.-P b/tests/66-ref-simple-OK.asn1.-P
index 00b7bbf..206e044 100644
--- a/tests/66-ref-simple-OK.asn1.-P
+++ b/tests/66-ref-simple-OK.asn1.-P
@@ -163,23 +163,19 @@
 
 /*** <<< STAT-DEFS [SimpleType] >>> ***/
 
-static asn_INTEGER_enum_map_t asn_MAP_SimpleType_enum2value[] = {
-	{ "one",	0 },
-	{ "three",	2 },
-	{ "two",	1 }
-};
 static asn_INTEGER_enum_map_t asn_MAP_SimpleType_value2enum[] = {
-	{ "one",	0 },
-	{ "two",	1 },
-	{ "three",	2 }
+	{ 0,	3,	"one" },
+	{ 1,	3,	"two" },
+	{ 2,	5,	"three" }
+};
+static unsigned int asn_MAP_SimpleType_enum2value[] = {
+	0,	/* one(0) */
+	2,	/* three(2) */
+	1	/* two(1) */
 };
 static asn_INTEGER_specifics_t asn_DEF_SimpleType_specs = {
-	/* Two name<->value maps sorted differently;
-	 * this may seem like a waste of space,
-	 * but the strings actually share it.
-	 */
-	asn_MAP_SimpleType_enum2value,	/* "tag" => N; sorted by tag */
-	asn_MAP_SimpleType_value2enum,	/* N => "tag"; sorted by N */
+	asn_MAP_SimpleType_value2enum,	/* "tag" => N; sorted by tag */
+	asn_MAP_SimpleType_enum2value,	/* N => "tag"; sorted by N */
 	3,	/* Number of elements in the maps */
 	0	/* Enumeration is not extensible */
 };
diff --git a/tests/70-xer-test-OK.asn1.-P b/tests/70-xer-test-OK.asn1.-P
index 4c1dac2..f812a7e 100644
--- a/tests/70-xer-test-OK.asn1.-P
+++ b/tests/70-xer-test-OK.asn1.-P
@@ -751,21 +751,17 @@
 
 /*** <<< STAT-DEFS [SetOfEnums] >>> ***/
 
-static asn_INTEGER_enum_map_t asn_MAP_SetOfEnums_Member_enum2value[] = {
-	{ "one",	0 },
-	{ "oneMore",	1 }
-};
 static asn_INTEGER_enum_map_t asn_MAP_SetOfEnums_Member_value2enum[] = {
-	{ "one",	0 },
-	{ "oneMore",	1 }
+	{ 0,	3,	"one" },
+	{ 1,	7,	"oneMore" }
+};
+static unsigned int asn_MAP_SetOfEnums_Member_enum2value[] = {
+	0,	/* one(0) */
+	1	/* oneMore(1) */
 };
 static asn_INTEGER_specifics_t asn_DEF_SetOfEnums_Member_specs = {
-	/* Two name<->value maps sorted differently;
-	 * this may seem like a waste of space,
-	 * but the strings actually share it.
-	 */
-	asn_MAP_SetOfEnums_Member_enum2value,	/* "tag" => N; sorted by tag */
-	asn_MAP_SetOfEnums_Member_value2enum,	/* N => "tag"; sorted by N */
+	asn_MAP_SetOfEnums_Member_value2enum,	/* "tag" => N; sorted by tag */
+	asn_MAP_SetOfEnums_Member_enum2value,	/* N => "tag"; sorted by N */
 	2,	/* Number of elements in the maps */
 	0	/* Enumeration is not extensible */
 };
@@ -936,23 +932,19 @@
 
 /*** <<< STAT-DEFS [SequenceOf] >>> ***/
 
-static asn_INTEGER_enum_map_t asn_MAP_id_enum2value[] = {
-	{ "one",	1 },
-	{ "two",	2 }
+static asn_INTEGER_enum_map_t asn_MAP_id_value2enum[] = {
+	{ 1,	3,	"one" },
+	{ 2,	3,	"two" }
 	/* This list is extensible */
 };
-static asn_INTEGER_enum_map_t asn_MAP_id_value2enum[] = {
-	{ "one",	1 },
-	{ "two",	2 }
+static unsigned int asn_MAP_id_enum2value[] = {
+	0,	/* one(1) */
+	1	/* two(2) */
 	/* This list is extensible */
 };
 static asn_INTEGER_specifics_t asn_DEF_id_specs = {
-	/* Two name<->value maps sorted differently;
-	 * this may seem like a waste of space,
-	 * but the strings actually share it.
-	 */
-	asn_MAP_id_enum2value,	/* "tag" => N; sorted by tag */
-	asn_MAP_id_value2enum,	/* N => "tag"; sorted by N */
+	asn_MAP_id_value2enum,	/* "tag" => N; sorted by tag */
+	asn_MAP_id_enum2value,	/* N => "tag"; sorted by N */
 	2,	/* Number of elements in the maps */
 	1	/* Enumeration is extensible */
 };
