Seeing your screenshot, I sense that you should separate the model of your level from the rendering :
The model is a matrix of cells that are "floor" and "empty" and match the red grid on your screenshot. We don't need walls in this model : the player can go to a neighbour cell (8 direction) only if this neighbour cell is "floor".
On the other hand, the rendering of your maze use a smaller grid so that it can use a tileset like the one you found. Here I would say that one cell is drawn using 4 tiles. The tiles array is preprocessed to compute where to put a wall.