diff --git a/cper-utils.c b/cper-utils.c
index 07d549f..88d7aad 100644
--- a/cper-utils.c
+++ b/cper-utils.c
@@ -31,7 +31,7 @@
     json_object_object_add(error_status_ir, "detectedByResponder", json_object_new_boolean(error_status->DetectedByResponder));
     json_object_object_add(error_status_ir, "detectedByRequester", json_object_new_boolean(error_status->DetectedByRequester));
     json_object_object_add(error_status_ir, "firstError", json_object_new_boolean(error_status->FirstError));
-    json_object_object_add(error_status_ir, "overflowNotLogged", json_object_new_boolean(error_status->OverflowNotLogged));
+    json_object_object_add(error_status_ir, "overflowDroppedLogs", json_object_new_boolean(error_status->OverflowNotLogged));
     
     return error_status_ir;
 }
diff --git a/sections/cper-section-arm.c b/sections/cper-section-arm.c
index da5d533..f16fe0a 100644
--- a/sections/cper-section-arm.c
+++ b/sections/cper-section-arm.c
@@ -322,11 +322,11 @@
 {
     json_object* register_array = json_object_new_object();
     json_object* mrs_encoding = json_object_new_object();
-    json_object_object_add(mrs_encoding, "op2", json_object_new_int(misc_register->MrsOp2));
-    json_object_object_add(mrs_encoding, "crm", json_object_new_int(misc_register->MrsOp2));
-    json_object_object_add(mrs_encoding, "crn", json_object_new_int(misc_register->MrsOp2));
-    json_object_object_add(mrs_encoding, "op1", json_object_new_int(misc_register->MrsOp2));
-    json_object_object_add(mrs_encoding, "o0", json_object_new_int(misc_register->MrsOp2));
+    json_object_object_add(mrs_encoding, "op2", json_object_new_uint64(misc_register->MrsOp2));
+    json_object_object_add(mrs_encoding, "crm", json_object_new_uint64(misc_register->MrsOp2));
+    json_object_object_add(mrs_encoding, "crn", json_object_new_uint64(misc_register->MrsOp2));
+    json_object_object_add(mrs_encoding, "op1", json_object_new_uint64(misc_register->MrsOp2));
+    json_object_object_add(mrs_encoding, "o0", json_object_new_uint64(misc_register->MrsOp2));
     json_object_object_add(register_array, "mrsEncoding", mrs_encoding);
     json_object_object_add(register_array, "value", json_object_new_uint64(misc_register->Value));
 
diff --git a/sections/cper-section-memory.c b/sections/cper-section-memory.c
index 5f78eed..296425c 100644
--- a/sections/cper-section-memory.c
+++ b/sections/cper-section-memory.c
@@ -26,8 +26,17 @@
 
     //Bank.
     json_object* bank = json_object_new_object();
-    json_object_object_add(bank, "address", json_object_new_uint64(memory_error->Bank & 0xFF));
-    json_object_object_add(bank, "group", json_object_new_uint64(memory_error->Bank >> 8));
+    if ((memory_error->ValidFields >> 5) & 0x1)
+    {
+        //Entire bank address mode.
+        json_object_object_add(bank, "value", json_object_new_uint64(memory_error->Bank));
+    }
+    else 
+    {
+        //Address/group address mode.
+        json_object_object_add(bank, "address", json_object_new_uint64(memory_error->Bank & 0xFF));
+        json_object_object_add(bank, "group", json_object_new_uint64(memory_error->Bank >> 8));
+    }
     json_object_object_add(section_ir, "bank", bank);
 
     //Memory error type.
@@ -80,8 +89,17 @@
 
     //Bank.
     json_object* bank = json_object_new_object();
-    json_object_object_add(bank, "address", json_object_new_uint64(memory_error->Bank & 0xFF));
-    json_object_object_add(bank, "group", json_object_new_uint64(memory_error->Bank >> 8));
+    if ((memory_error->ValidFields >> 5) & 0x1)
+    {
+        //Entire bank address mode.
+        json_object_object_add(bank, "value", json_object_new_uint64(memory_error->Bank));
+    }
+    else 
+    {
+        //Address/group address mode.
+        json_object_object_add(bank, "address", json_object_new_uint64(memory_error->Bank & 0xFF));
+        json_object_object_add(bank, "group", json_object_new_uint64(memory_error->Bank >> 8));
+    }
     json_object_object_add(section_ir, "bank", bank);
 
     //Memory error type.
diff --git a/specification/cper-json-specification.tex b/specification/cper-json-specification.tex
index 5d338ce..ac7af3f 100644
--- a/specification/cper-json-specification.tex
+++ b/specification/cper-json-specification.tex
@@ -29,7 +29,7 @@
     \end{tabular}
     \end{adjustbox}
     \caption{#1}
-    \label{table:headerrevstructure}
+    \label{table:#1}
     \end{table}
     \FloatBarrier
 }
@@ -209,6 +209,30 @@
 minor & int & The minor version number. Incremented on additions of new GUID types, errata fixes, or clarifications. Backwards compatible with the same major version number. \\
 \jsontableend{CPER revision structure field table.}
 
+% Generic Error Status
+\subsection{Generic Error Status Structure}
+\label{subsection:genericerrorstatusstructure}
+This structure describes the a generic CPER error status, that can be used by any CPER section.
+\jsontable{table:genericerrorstatusstructure}
+errorType.value & uint64 & The raw value of the error type.\\
+errorType.name & string & The human readable name, if available, of the error type.\\
+errorType.description & string & A human readable description, if available, of the error type.\\
+\hline
+addressSignal & boolean & Whether the error was detected on the address signals/address portion of the transaction.\\
+\hline
+controlSignal & boolean & Whether the error was detected on the control signals/control portion of the transaction.\\
+\hline
+dataSignal & boolean & Whether the error was detected on the data signals/data portion of the transaction.\\
+\hline
+detectedByResponder & boolean & Whether the error was detected by the responder of the transaction.\\
+\hline
+detectedByRequester & boolean & Whether the error was detected by the requester of the transaction.\\
+\hline
+firstError & boolean & If multiple errors are logged for a single type of section, this indicates this is the first error in a chronological sequence. This field is optional to set.\\
+\hline
+overflowDroppedLogs & boolean & Additional errors occurred and were not logged due to lack of resources.\\
+\jsontableend{Generic Error Status structure field table.}
+
 %Sections.
 \chapter{Section Specification}
 \label{chapter:sectionchapter}
@@ -1230,5 +1254,231 @@
 data & string & A base64 representation of the unknown binary register array data.\\
 \jsontableend{ARM AARCH64 Unknown Registers structure field table.}
 
+% Memory error section.
+\section{Memory Error Section}
+\label{section:memoryerrorsection}
+This section describes the JSON format for a single Memory Error Section from a CPER record. The GUID used for Memory Error Sections is \texttt{\{ 0xa5bc1114, 0x6f64, 0x4ede, \{ 0xb8, 0x63, 0x3e, 0x83, 0xed, 0x7c, 0x83, 0xb1 \}\}}.
+\jsontable{table:memoryerrorsection}
+validationBits & object & A Memory Error Validation structure, as described in Subsection \ref{subsection:memoryerrorvalidationstructure}.\\
+\hline
+errorStatus & object & A CPER Generic Error Status structure, as described in Subsection \ref{subsection:genericerrorstatusstructure}.\\
+\hline
+bank & object & Structure as described in one of Subsection \ref{subsection:memoryerrorstandardbankaddressstructure} or Subsection \ref{subsection:memoryerroraddressgroupbankaddressstructure}. Selected structure depends on the \texttt{validationBits.bankValid} field.\\
+\hline
+memoryErrorType.value & uint64 & The raw value of the memory error type.\\
+memoryErrorType.name & string & The human readable name, if available, of the memory error type.\\
+\hline
+extended.rowBit16 & boolean & Bit 16 of the row number of the memory error location.\\
+extended.rowBit17 & boolean & Bit 17 of the row number of the memory error location.\\
+extended.chipIdentification & int & The ID of the related chip.\\
+\hline
+physicalAddress & uint64 & The physical address at which the error occurred.\\
+\hline
+physicalAddressMask & uint64 & Defines the valid address bits in the \texttt{physicalAddress} field.\\
+\hline
+node & uint64 & Identifies the node containing the memory error, if in a multi-node system.\\
+\hline
+card & uint64 & The card number of the memory error location.\\
+\hline
+moduleRank & uint64 & The module or rank number of the offending memory error location.\\
+\hline
+device & uint64 & The device number of the memory associated with the error.\\
+\hline
+row & uint64 & The first 16 bits of the row number of the memory location.\\
+\hline
+column & uint64 & The column number of the memory error location.\\
+\hline
+bitPosition & uint64 & The bit position at which the error occurred.\\
+\hline
+requestorID & uint64 & Hardware address of the device that initiated the errored transaction.\\
+\hline
+responderID & uint64 & Hardware address of the device that responded to the transaction.\\
+\hline
+targetID & uint64 & Hardware address of the intended target of the transaction.\\
+\hline
+rankNumber & uint64 & The rank number of the memory error location.\\
+\hline
+cardSmbiosHandle & uint64 & The SMBIOS handle for the memory card's Type 16 Memory Array Structure.\\
+\hline
+moduleSmbiosHandle & uint64 & The SMBIOS handle for the memory module's Type 17 Memory Device Structure.\\
+\jsontableend{Memory Error structure field table.}
+
+% Memory error validation structure.
+\subsection{Memory Error Validation Structure}
+\label{subsection:memoryerrorvalidationstructure}
+This structure describes whether fields in a single Memory Error (\ref{section:memoryerrorsection}) are valid, using boolean fields.
+\jsontable{table:memoryerrorvalidationstructure}
+errorStatusValid & boolean & Whether the "errorStatus" field of a Memory Error (\ref{section:memoryerrorsection}) is valid.\\
+\hline
+physicalAddressValid & boolean & Whether the "physicalAddress" field of a Memory Error (\ref{section:memoryerrorsection}) is valid.\\
+\hline
+physicalAddressMaskValid & boolean & Whether the "physicalAddressMask" field of a Memory Error (\ref{section:memoryerrorsection}) is valid.\\
+\hline
+nodeValid & boolean & Whether the "node" field of a Memory Error (\ref{section:memoryerrorsection}) is valid.\\
+\hline
+cardValid & boolean & Whether the "card" field of a Memory Error (\ref{section:memoryerrorsection}) is valid.\\
+\hline
+moduleValid & boolean & Whether the "module" field of a Memory Error (\ref{section:memoryerrorsection}) is valid.\\
+\hline
+bankValid & boolean & Whether the "bank.value" field of a Memory Error (\ref{section:memoryerrorsection}) is valid. When the bank is addressed by group/address, refer to \texttt{bankGroupValid} and \texttt{bankAddressValid} instead.\\
+\hline
+deviceValid & boolean & Whether the "device" field of a Memory Error (\ref{section:memoryerrorsection}) is valid.\\
+\hline
+rowValid & boolean & Whether the "row" field of a Memory Error (\ref{section:memoryerrorsection}) is valid.\\
+\hline
+memoryPlatformTargetValid & boolean & Whether the memory platform target of a Memory Error (\ref{section:memoryerrorsection}) is valid.\\
+\hline
+memoryErrorTypeValid & boolean & Whether the "memoryErrorType" field of a Memory Error (\ref{section:memoryerrorsection}) is valid.\\
+\hline
+rankNumberValid & boolean & Whether the "rankNumber" field of a Memory Error (\ref{section:memoryerrorsection}) is valid.\\
+\hline
+cardHandleValid & boolean & Whether the "cardSmbiosHandle" field of a Memory Error (\ref{section:memoryerrorsection}) is valid.\\
+\hline
+moduleHandleValid & boolean & Whether the "moduleSmbiosHandle" field of a Memory Error (\ref{section:memoryerrorsection}) is valid.\\
+\hline
+extendedRowBitsValid & boolean & Whether the "extended.rowBit16" and "extended.rowBit17" field of a Memory Error (\ref{section:memoryerrorsection}) is valid.\\
+\hline
+bankGroupValid & boolean & Whether the "bank.group" field of a Memory Error (\ref{section:memoryerrorsection}) is valid.\\
+\hline
+bankAddressValid & boolean & Whether the "bank.address" field of a Memory Error (\ref{section:memoryerrorsection}) is valid.\\
+\hline
+chipIdentificationValid & boolean & Whether the "extended.chipIdentification" field of a Memory Error (\ref{section:memoryerrorsection}) is valid.\\
+\jsontableend{Memory Error Validation structure field table.}
+
+% Memory error normal bank addressing structure.
+\subsection{Memory Error Standard Bank Address Structure}
+\label{subsection:memoryerrorstandardbankaddressstructure}
+This structure describes a simple bank address for a Memory Error section (\ref{section:memoryerrorsection}). This structure is selected when the \texttt{bankValid} field in the corresponding Memory Error Validation Structure (\ref{subsection:memoryerrorvalidationstructure}) is set to "true".
+\jsontable{table:memoryerrorstandardbankaddressstructure}
+value & uint64 & The value of the bank address.\\
+\jsontableend{Memory Error Standard Bank Address structure field table.}
+
+% Memory error address/group bank addressing structure.
+\subsection{Memory Error Address/Group Bank Address Structure}
+\label{subsection:memoryerroraddressgroupbankaddressstructure}
+This structure describes an address/group bank address for a Memory Error section (\ref{section:memoryerrorsection}). This structure is selected when the \texttt{bankValid} field in the corresponding Memory Error Validation Structure (\ref{subsection:memoryerrorvalidationstructure}) is set to "false".
+\jsontable{table:memoryerroraddressgroupbankaddressstructure}
+address & uint64 & The address of the bank.\\
+\hline
+group & uint64 & The group of the bank.\\
+\jsontableend{Memory Error Address/Group Bank Address structure field table.}
+
+% Memory error 2 section.
+\section{Memory Error 2 Section}
+\label{section:memoryerror2section}
+This section describes the JSON format for a single Memory Error 2 Section from a CPER record. The GUID used for Memory Error 2 Sections is \texttt{\{ 0x61EC04FC, 0x48E6, 0xD813, \{ 0x25, 0xC9, 0x8D, 0xAA, 0x44, 0x75, 0x0B, 0x12 \}\}}.
+\jsontable{table:memoryerror2section}
+validationBits & object & A Memory Error 2 Validation structure, as described in Subsection \ref{subsection:memoryerror2validationstructure}.\\
+\hline
+errorStatus & object & A CPER Generic Error Status structure, as described in Subsection \ref{subsection:genericerrorstatusstructure}.\\
+\hline
+bank & object & Structure as described in one of Subsection \ref{subsection:memoryerror2standardbankaddressstructure} or Subsection \ref{subsection:memoryerror2addressgroupbankaddressstructure}. Selected structure depends on the \texttt{validationBits.bankValid} field.\\
+\hline
+memoryErrorType.value & uint64 & The raw value of the memory error type.\\
+memoryErrorType.name & string & The human readable name, if available, of the memory error type.\\
+\hline
+status.value & int & The raw value of the memory error status.\\
+status.state & string & The human readable value, if available, of the memory error status (corrected/uncorrected).\\
+\hline
+physicalAddress & uint64 & The physical address at which the error occurred.\\
+\hline
+physicalAddressMask & uint64 & Defines the valid address bits in the \texttt{physicalAddress} field.\\
+\hline
+node & uint64 & Identifies the node containing the memory error, if in a multi-node system.\\
+\hline
+card & uint64 & The card number of the memory error location.\\
+\hline
+module & uint64 & The module of the offending memory error location.\\
+\hline
+device & uint64 & The device number of the memory associated with the error.\\
+\hline
+row & uint64 & The first 16 bits of the row number of the memory location.\\
+\hline
+column & uint64 & The column number of the memory error location.\\
+\hline
+bitPosition & uint64 & The bit position at which the error occurred.\\
+\hline
+rank & uint64 & The rank number of the error location.\\
+\hline
+chipID & uint64 & Chip identifier. Encoded field used to address the die in 3DS packages.\\
+\hline
+requestorID & uint64 & Hardware address of the device that initiated the errored transaction.\\
+\hline
+responderID & uint64 & Hardware address of the device that responded to the transaction.\\
+\hline
+targetID & uint64 & Hardware address of the intended target of the transaction.\\
+\hline
+cardSmbiosHandle & uint64 & The SMBIOS handle for the memory card's Type 16 Memory Array Structure.\\
+\hline
+moduleSmbiosHandle & uint64 & The SMBIOS handle for the memory module's Type 17 Memory Device Structure.\\
+\jsontableend{Memory Error 2 structure field table.}
+
+% Memory error 2 validation structure.
+\subsection{Memory Error 2 Validation Structure}
+\label{subsection:memoryerror2validationstructure}
+This structure describes whether fields in a single Memory Error 2 (\ref{section:memoryerror2section}) are valid, using boolean fields.
+\jsontable{table:memoryerror2validationstructure}
+errorStatusValid & boolean & Whether the "errorStatus" field of a Memory Error 2 (\ref{section:memoryerror2section}) is valid.\\
+\hline
+physicalAddressValid & boolean & Whether the "physicalAddress" field of a Memory Error 2 (\ref{section:memoryerror2section}) is valid.\\
+\hline
+physicalAddressMaskValid & boolean & Whether the "physicalAddressMask" field of a Memory Error 2 (\ref{section:memoryerror2section}) is valid.\\
+\hline
+nodeValid & boolean & Whether the "node" field of a Memory Error 2 (\ref{section:memoryerror2section}) is valid.\\
+\hline
+cardValid & boolean & Whether the "card" field of a Memory Error 2 (\ref{section:memoryerror2section}) is valid.\\
+\hline
+moduleValid & boolean & Whether the "module" field of a Memory Error 2 (\ref{section:memoryerror2section}) is valid.\\
+\hline
+bankValid & boolean & Whether the "bank.value" field of a Memory Error 2 (\ref{section:memoryerror2section}) is valid. When the bank is addressed by group/address, refer to \texttt{bankGroupValid} and \texttt{bankAddressValid} instead.\\
+\hline
+deviceValid & boolean & Whether the "device" field of a Memory Error 2 (\ref{section:memoryerror2section}) is valid.\\
+\hline
+rowValid & boolean & Whether the "row" field of a Memory Error 2 (\ref{section:memoryerror2section}) is valid.\\
+\hline
+columnValid & boolean & Whether the "column" field of a Memory Error 2 (\ref{section:memoryerror2section}) is valid.\\
+\hline
+rankValid & boolean & Whether the "rank" field of a Memory Error 2 (\ref{section:memoryerror2section}) is valid.\\
+\hline
+bitPositionValid & boolean & Whether the "bitPosition" field of a Memory Error 2 (\ref{section:memoryerror2section}) is valid.\\
+\hline
+chipIDValid & boolean & Whether the "chipID" field of a Memory Error 2 (\ref{section:memoryerror2section}) is valid.\\
+\hline
+memoryErrorTypeValid & boolean & Whether the "memoryErrorType" field of a Memory Error 2 (\ref{section:memoryerror2section}) is valid.\\
+\hline
+statusValid & boolean & Whether the "status" field of a Memory Error 2 (\ref{section:memoryerror2section}) is valid.\\
+\hline
+requestorIDValid & boolean & Whether the "requestorID" field of a Memory Error 2 (\ref{section:memoryerror2section}) is valid.\\
+\hline
+responderIDValid & boolean & Whether the "responderID" field of a Memory Error 2 (\ref{section:memoryerror2section}) is valid.\\
+\hline
+targetIDValid & boolean & Whether the "targetID" field of a Memory Error 2 (\ref{section:memoryerror2section}) is valid.\\
+\hline
+cardHandleValid & boolean & Whether the "cardSmbiosHandle" field of a Memory Error 2 (\ref{section:memoryerror2section}) is valid.\\
+\hline
+moduleHandleValid & boolean & Whether the "moduleSmbiosHandle" field of a Memory Error 2 (\ref{section:memoryerror2section}) is valid.\\
+\hline
+bankGroupValid & boolean & Whether the "bankGroup" field of a Memory Error 2 (\ref{section:memoryerror2section}) is valid.\\
+\hline
+bankAddressValid & boolean & Whether the "bankAddress" field of a Memory Error 2 (\ref{section:memoryerror2section}) is valid.\\
+\jsontableend{Memory Error 2 Validation structure field table.}
+
+% Memory error 2 normal bank addressing structure.
+\subsection{Memory Error 2 Standard Bank Address Structure}
+\label{subsection:memoryerror2standardbankaddressstructure}
+This structure describes a simple bank address for a Memory Error 2 section (\ref{section:memoryerror2section}). This structure is selected when the \texttt{bankValid} field in the corresponding Memory Error 2 Validation Structure (\ref{subsection:memoryerror2validationstructure}) is set to "true".
+\jsontable{table:memoryerror2standardbankaddressstructure}
+value & uint64 & The value of the bank address.\\
+\jsontableend{Memory Error 2 Standard Bank Address structure field table.}
+
+% Memory error 2 address/group bank addressing structure.
+\subsection{Memory Error 2 Address/Group Bank Address Structure}
+\label{subsection:memoryerror2addressgroupbankaddressstructure}
+This structure describes an address/group bank address for a Memory Error 2 section (\ref{section:memoryerror2section}). This structure is selected when the \texttt{bankValid} field in the corresponding Memory Error 2 Validation Structure (\ref{subsection:memoryerror2validationstructure}) is set to "false".
+\jsontable{table:memoryerror2addressgroupbankaddressstructure}
+address & uint64 & The address of the bank.\\
+\hline
+group & uint64 & The group of the bank.\\
+\jsontableend{Memory Error 2 Address/Group Bank Address structure field table.}
 
 \end{document}
\ No newline at end of file
