But hex array is just normal square array, with every other row (or column) moved by 1/2 of its width (height).
Instead of keeping all that easy to calculate data, make function that calculates neighbors in runtime.
And store only type of hex tile in 2d array.