diff --git a/SabreTools.Serialization/Deserializers/CFB.cs b/SabreTools.Serialization/Deserializers/CFB.cs
index 25a70b07..077ab8ee 100644
--- a/SabreTools.Serialization/Deserializers/CFB.cs
+++ b/SabreTools.Serialization/Deserializers/CFB.cs
@@ -247,8 +247,8 @@ namespace SabreTools.Serialization.Deserializers
{
var obj = new DirectoryEntry();
- byte[] name = data.ReadBytes(32);
- obj.Name = Encoding.Unicode.GetString(name).TrimEnd('\0');
+ byte[] name = data.ReadBytes(64);
+ obj.Name = Encoding.Unicode.GetString(name);
obj.NameLength = data.ReadUInt16LittleEndian();
obj.ObjectType = (ObjectType)data.ReadByteValue();
obj.ColorFlag = (ColorFlag)data.ReadByteValue();
@@ -332,11 +332,9 @@ namespace SabreTools.Serialization.Deserializers
/// Filled sector full of directory entries on success, null on error
private static DirectoryEntry[]? ParseDirectoryEntries(Stream data, ushort sectorShift, ushort majorVersion)
{
-#if NET20 || NET35 || NET40
- int directoryEntrySize = Marshal.SizeOf(new DirectoryEntry());
-#else
- int directoryEntrySize = Marshal.SizeOf();
-#endif
+ //
+ int directoryEntrySize = 128;
+
int sectorCount = (int)(Math.Pow(2, sectorShift) / directoryEntrySize);
var directoryEntries = new DirectoryEntry[sectorCount];