В общем, в моем случае все очень просто.
Нет никакого смешивания типов. Я не читаю байт, потом int, потом структуру на 315.5 байт.
Я читаю массив структур конкретного типа константного размера, который безопасно можно интерпретировать, как массив байтиков, а массив байтиков нарезать на структурки.
Не хватало именно safe-каста, и думал - писать его руками или есть готовое решение.
Всем спасибо!