diff --git a/src/nostalgia/modules/core/src/tilesheet.cpp b/src/nostalgia/modules/core/src/tilesheet.cpp
index bd2aa99d..9f622ad4 100644
--- a/src/nostalgia/modules/core/src/tilesheet.cpp
+++ b/src/nostalgia/modules/core/src/tilesheet.cpp
@@ -134,16 +134,20 @@ void setPixel(TileSheet::SubSheet &ss, int8_t pBpp, ox::Point const&pt, uint8_t
 }
 
 static ox::Error setPixelCount(ox::Vector<uint8_t> &pixels, int8_t pBpp, std::size_t cnt) noexcept {
+	size_t sz{};
 	switch (pBpp) {
 		case 4:
-			pixels.resize(cnt / 2);
-			return OxError(0);
+			sz = cnt / 2;
+			break;
 		case 8:
-			pixels.resize(cnt);
-			return OxError(0);
+			sz = cnt;
+			break;
 		default:
 			return OxError(1, "Invalid pBpp used for TileSheet::SubSheet::setPixelCount");
 	}
+	pixels.reserve(sz);
+	pixels.resize(sz);
+	return {};
 }
 
 ox::Error setPixelCount(TileSheet::SubSheet &ss, int8_t pBpp, std::size_t cnt) noexcept {
@@ -158,8 +162,8 @@ unsigned pixelCnt(TileSheet::SubSheet const&ss, int8_t pBpp) noexcept {
 ox::Error resizeSubsheet(TileSheet::SubSheet &ss, int8_t pBpp, ox::Size const&sz) noexcept {
 	ox::Vector<uint8_t> out;
 	oxReturnError(setPixelCount(out, pBpp, static_cast<size_t>(sz.width * sz.height) * PixelsPerTile));
-	auto const w = sz.width * TileWidth;
-	auto const h = sz.height * TileHeight;
+	auto const w = ss.columns * TileWidth;
+	auto const h = ss.rows * TileHeight;
 	for (auto x = 0; x < w; ++x) {
 		for (auto y = 0; y < h; ++y) {
 			auto const palIdx = getPixel(ss, pBpp, {x, y});