diff --git a/library/L3_Templates.ttcn b/library/L3_Templates.ttcn
index af4a573..7e53709 100644
--- a/library/L3_Templates.ttcn
+++ b/library/L3_Templates.ttcn
@@ -63,6 +63,67 @@
 }
 
 
+/* 3GPP TS 24.008, section 10.5.1.4 "Mobile Identity" */
+template (value) MobileIdentityTLV ts_MI_TLV(template (value) MobileIdentityV mi) := {
+	elementIdentifier := '0010111'B,
+	spare1 := '0'B,
+	mobileIdentityLV := ts_MI_LV(mi)
+};
+template MobileIdentityTLV tr_MI_TLV(template MobileIdentityV mi) := {
+	elementIdentifier := '0010111'B,
+	spare1 := '0'B,
+	mobileIdentityLV := tr_MI_LV(mi)
+};
+
+template (value) MobileIdentityLV ts_MI_LV(template (value) MobileIdentityV mi) := {
+	lengthIndicator := 0, /* overwritten */
+	mobileIdentityV := mi
+};
+template MobileIdentityLV tr_MI_LV(template MobileIdentityV mi) := {
+	lengthIndicator := ?,
+	mobileIdentityV := mi
+};
+
+/* Universal (send & receive) template for No Identity */
+template MobileIdentityV t_MI_NoIdentity(template (present) hexstring filler := 'F'H) := {
+	typeOfIdentity := '000'B,
+	oddEvenInd_identity := {
+		no_identity := {
+			/* Always old, since length can be 1, 3, or 5 */
+			oddevenIndicator := '0'B,
+			fillerDigits := filler
+		}
+	}
+};
+
+/* Universal (send & receive) template for TMSI/P-TMSI */
+template MobileIdentityV t_MI_TMSI(template (present) OCT4 tmsi) := {
+	typeOfIdentity := '100'B,
+	oddEvenInd_identity := {
+		tmsi_ptmsi := {
+			oddevenIndicator := '0'B,
+			fillerDigit := '1111'B,
+			octets := tmsi
+		}
+	}
+};
+
+private function f_tr_MI_IMSI(template (present) hexstring digits)
+return template (present) IMSI_L3 {
+	if (istemplatekind(digits, "?")) {
+		return ?;
+	} else {
+		return f_enc_IMSI_L3(valueof(digits))
+	}
+}
+template MobileIdentityV tr_MI_IMSI(template hexstring imsi) := {
+	typeOfIdentity := '001'B,
+	oddEvenInd_identity := {
+		imsi := f_tr_MI_IMSI(imsi)
+	}
+};
+
+
 /* send template for Mobile Identity (TMSI) */
 template MobileIdentityLV ts_MI_TMSI_LV(OCT4 tmsi) := {
 	lengthIndicator := 0, /* overwritten */
